①模組即乙個「.c
」檔案和乙個「
.h」檔案的結合,「
.h」標頭檔案是對該模組介面的宣告。
②某模組提供給其他模組呼叫的外部函式及資料需在「.h
」檔案中冠以
extern
關鍵字宣告。
③模組內的函式和全域性變數需在「.c
」檔案頭冠以
static
關鍵字宣告。
④永遠不要再「.h
」檔案中定義變數。
定義變數和宣告變數的區別在於定義會產生分配記憶體的操作,這是彙編階段的概念;宣告則只是告訴包含該宣告的模組在連線階段從其他模組尋找外部函式和變數。
例如:/*module1.h*/
int a=5; /*在模組1的
.h檔案中定義
int a*/
/*module1.c*/
#include」module1.h」 /*在模組
1中包含模組1的
.h檔案*/
/*module2.c*/
#include」module1.h」 /*在模組
2中包含模組1的
.h檔案*/
/*module3.c*/
#include」module1.h」 /*在模組
3中包含模組1的
.h檔案*/
以上程式的結果是在模組1、2
、3中都定義了整型變數
a,變數
a在不同的模組對應不同的位址單元,實際上這樣的程式是不必要的。
正確做法如下:
/*module1.h*/
extern int a; /*在模組1的
.h檔案中宣告
int a*/
/*module1.c*/
#include」module1.h」 /*在模組
1中包含模組1的
.h檔案*/
int a=5; /*在模組
1的」.c」檔案中定義int a */
/*module2.c*/
#include」module1.h」 /*在模組
2中包含模組1的
.h檔案*/
/*module3.c*/
#include」module1.h」 /*在模組
3中包含模組1的
.h檔案*/
這樣如果模組1、2
、3操作變數
a的話。對應的是同一記憶體單元。
C語言模組化程式設計
c語言模組化程式設計 模組劃分 c語言模組化程式 設計需理解如下概念 1 模組即是乙個.c檔案和乙個.h檔案的結合,標頭檔案 h 中是對於該模組介面的宣告 2 某模組提供給 其它模組呼叫的外部函式及資料需在.h中檔案中冠以extern關鍵字宣告 3 模組內的函式和全域性變數需在.c檔案開頭冠以sta...
模組化程式設計理解
工作中在做客戶運營系統時,發現js和css的引用還處於最原始的狀態沒有更新。在上乙個專案中通過物件和其中的方法實現了簡單的模組化程式設計。但隨著工程專案的龐大程度增加,簡單的物件已經滿足不了模組化程式設計的需求了,所以接觸了requirejs,了解了amd程式設計規範。和amd對應的是cmd,在no...
C語言之模組化程式設計
1 為什麼使用函式?函式就是功能 每個函式代表特定的功能,函式的名字應反應其代表的功能。2 怎麼定義函式?函式定義時需指定函式的型別 即函式返回值的型別。函式定義可大致分為以下三類 無參函式 型別名 函式名 void 可省略 有參函式 型別名 函式名 形參 空函式 程式設計時往往需要確定若干個模組,...