程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言——模塊編程和extern使用

C語言——模塊編程和extern使用

編輯:關於C語言

模塊化編程:

   我們都看到別人寫的程序很工整、規范、可讀性很強,而且不是所有的程序、函數卸載一個main文件下面,整個工程下面都細分得很清楚,並且移植性高。

   把程序或有獨立整體功能的函數模塊化成另外一個文件,然後統一管理,最終在main文件下#include"xxxx.h",然後有序調用。

   下面就介紹怎麼把程序模塊化:

1. 我們先創建一個頭文件,命名為people.h,添加內容如下:

   

#ifndef __PEOPLE__H_ //預編譯頭文件ifndef =>if no define ,就是如果工程裡頭沒有定義這個都                         //文件的意思,用__PEOPLE__H_常量判斷

#define __PEOPLE__H_ //如果沒有定義people.h這個頭文件,就可以定義,如果已經定義,則不再編                                         //譯這個頭文件


//函數聲明

char *run();

void say(char *str);

void eat(char str[]);

int calculate(int a, int b);


#endif//結束符


2.我們創建一個people.c文件,這個文件吧people.h,文件下的函數聲明進行實現,添加以下內容:

#include "people.h"

#include "app.h"

#include <string.h>


//函數實現

char *run()

{

discance = 100;//改變extern的值,就是改變定義這個extern 變量的值

char *ch="he has runned about ";


return ch;

}


void say(char *str)

{

printf("我說");

while (*str!=NULL)

{

printf("%c",*(str++));

}

printf("\n");

}


void eat(char str[])

{

char *p = str;

printf("我正在吃");

while (*p!=NULL)

{

printf("%c",*(p++));

}

printf("\n");

}


int calculate(int a, int b)

{

int sum;

sum = a*b;

return sum;

}


3.這樣就完成了一對C(源文件)和H(頭文件)的映射。

接下來,我們看看extern的使用,我們創建一個頭文件app.h,添加內容如下:


#include <stdio.h>


extern int discance;//在這裡只能夠聲明,不能夠初始化,否則會錯誤


4.最後我們就寫最熟悉的main文件了:

#include "app.h"

#include "people.h"


//再次定義,並且初始化,證明這個外部變量是數據當前文件下的,

//外部只要引入app.h則可以使用sum,改變sum的數值,

//則相當於改變當前文件下的值

int discance = 0;


void main()

{

char *p;


printf("歡迎學習模塊化編程\n");

eat("meat");

say("hello world");


p = run();

while(*p != NULL)

{

printf("%c",*(p++));

}

printf("%d meter !\n",discance);

}

 

這樣就完成了簡單的模塊化編程,看不懂沒關系,大家可以下載源文件,在VC上運行,有C語言版的,也有C++版的,大家可以進行比較一下哦。

本文出自 “我是車手-MyWay” 博客,請務必保留此出處http://dragonyeah.blog.51cto.com/7022634/1285921

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved