如何使用 C 標頭檔案將程式分割成多個檔案
簡單的程式可以放在單一個檔案中,但當程式變得越來越龐大時,將它們全部放在一個檔案中將變得不可能。
您可以將程式的一部分放在一個獨立的檔案中,然後建立一個標頭檔案。
標頭檔案看起來像一個普通的 C 檔案,只是以 .h
結尾而不是 .c
,且不同於函式的實作和程式的其他部分,它僅包含聲明。
當您第一次使用 printf()
函式或其他輸入/輸出函式時,您已經使用過標頭檔案,並且您必須輸入:
#include <stdio.h>
來使用它。
#include
是一個預處理器指示。
預處理器會在標準庫中查找 stdio.h
檔案,因為您在它周圍使用了尖括號。要包含自己的標頭檔案,您將使用引號,就像這樣:
#include "myfile.h"
上述將會在當前資料夾中查找 myfile.h
。
您還可以使用資料夾結構來管理庫:
#include "myfolder/myfile.h"
讓我們舉個例子。這個程式計算從給定年份至今的年數:
#include <stdio.h>
int calculateAge(int year) {
const int CURRENT\_YEAR = 2020;
return CURRENT\_YEAR - year;
}
int main(void) {
printf("%u", calculateAge(1983));
}
假設我們想將 calculateAge
函式移到一個獨立的檔案中。
我們建立一個 calculate_age.c
檔案:
int calculateAge(int year) {
const int CURRENT\_YEAR = 2020;
return CURRENT\_YEAR - year;
}
還有一個 calculate_age.h
檔案,我們在其中放置 函式原型,與 .c
檔案中的函式相同,但不包含函式體:
int calculateAge(int year);
現在在主 .c
檔案中,我們可以刪除 calculateAge()
函式的定義,並導入 calculate_age.h
,這樣 calculateAge()
函式就可以使用了:
#include <stdio.h>
#include "calculate\_age.h"
int main(void) {
printf("%u", calculateAge(1983));
}
不要忘記,要編譯由多個檔案組成的程式,您需要在命令行中列出它們,像這樣:
gcc -o main main.c calculate\_age.c
對於更複雜的設定,需要使用一個 Makefile 文件來告訴編譯器如何編譯程式。