1、多檔案程式設計,乙個檔案可以有多個函式,但是乙個函式最多乙個檔案
2、多檔案程式設計的步驟:
• 把所有函式分散在多個檔案中,通常主函式在單獨的檔案裡3、在gcc命令後列出所有原始檔的路徑就可以編譯多檔案程式• 為每個原始檔編寫乙個配對的以.h作為副檔名的標頭檔案,主函式所在的不需要,不分配記憶體的內容都可以寫在標頭檔案裡,標頭檔案裡至少要包含配對原始檔裡所有函式的宣告
• 在所有原始檔裡使用#include預處理指令包含所需要的標頭檔案,配對標頭檔案是一種需要的標頭檔案,如果原始檔裡宣告了標頭檔案裡宣告的函式,也是需要的標頭檔案
eg:lxl@ubuntu
:~/day/day14
$ gcc text1.c text1-1.c
4、可以把多檔案程式的編譯過程記錄在makefile檔案裡,然後使用make工具完成編譯
#ifndef __text_h__//用條件編譯防止text.h被多次包含
// 使用條件編譯可以避免重複編譯,
// 需要注意的是要使用#ifndef語句
// 不同標頭檔案的巨集名稱必須不同
// 標頭檔案產用的巨集名稱應該是根據標頭檔案的路徑得來的
#define __text_h__
int add(int,int);//標頭檔案裡至少要包含配對原始檔裡所有函式的宣告
#endif //__text_h__
5、從乙個原始檔裡使用另乙個原始檔的全域性變數時,需要使用extern關鍵字再次宣告這個全域性變數先在函式裡新增變數,再在標頭檔案用extern宣告
6、使用exrern關鍵字宣告變數時,通常放在標頭檔案裡
7、不可以跨檔案使用靜態全域性變數
多檔案程式設計:
text1.c:
/* * 多檔案程式設計
* */
#include
#include "text1-1.h"
int main()
text1-1.c:
#include "text1-1.h"//將宣告本函式的標頭檔案包含進來
//如果還有其他函式也需要包含進
int add(int num, int num1)
text1-1.h:
#ifndef __text_h__//如果乙個檔案包含了此標頭檔案多次,使用這種方法,即在第一次編譯時沒有定義abc的巨集,執行了下面的所有,第二次再遇到編譯此檔案時abc已經被定義,就不會再編譯
// 使用條件編譯可以避免重複編譯,
// 粗要注意的是要使用#ifndef語句
// 不同標頭檔案的巨集名稱必須不同
// 標頭檔案產用的巨集名稱應該是根據標頭檔案的路徑得來的
#define __text_h__
int add(int,int);//標頭檔案裡至少要包含配對原始檔裡所有函式的宣告
#endif //__text_h__
C語言 多檔案程式設計
分檔案程式設計 1 當乙個專案比較大時,往往都是分檔案,這時候有可能不小心把同乙個標頭檔案 include 多次,或者標頭檔案巢狀包含。a.h 中包含 b.h include b.h b.h 中包含 a.h include a.h main.c 中使用其中標頭檔案 include a.h intma...
C 多檔案程式設計
2.基本規則 3.改造步驟 4.編譯方法 mutil main.c include include multi read 1.h 因為主函式用到了 multi read 1.h 裡宣告的read函式 intmain multi read 1.h ifndef multi read 1 h defin...
C語言模組化開發(多檔案程式設計)
1.main.c是程式的主模組,module.c是程式的乙個模組,main中使用extern int m來宣告變數,定義在module中,說明module中定義的全域性變數的作用域是整個程式。2.假如要使用printf函式的話就新增標頭檔案stdio.h,標頭檔案裡面都是函式的宣告,定義在系統庫中。...