一個頭文件一般包含類、子程序、變量和其他標識符的前置聲明。需要在一個以上源文件中被聲明的標識符可以放在一個頭文件中,使用時在其他源文件中包含該頭文件。
十年建站經(jīng)驗, 成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)客戶的見證與正確選擇。創(chuàng)新互聯(lián)提供完善的營銷型網(wǎng)頁建站明細報價表。后期開發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。頭文件作為模塊的公共接口,在其中聲明函數(shù)原型、對象和數(shù)據(jù)類型。
讓我們首先創(chuàng)建一個頭文件 add.h:
#ifndef _ADD_H_
#define _ADD_H_
int add(int, int);
#endif
其中 #ifndef, #define, #endif 是編譯器指令,為了防止重復(fù)包含頭文件,最好將所有聲明置于 #ifndef ... #endif 區(qū)塊中。_ADD_H_ 是頭文件標識符,為了保持唯一性,一般為頭文件名大寫,并將其中的句號替換為下劃線,同時前后各加一條下劃線。
然后讓我們再創(chuàng)建一個源文件 add.c 來實現(xiàn) add.h 中聲明的函數(shù)原型:
#include "add.h"
int add(int a, int b)
{
return a + b;
}
至此我們就準備好了一個源碼文件 add.c 和一個頭文件 add.h,現(xiàn)在你可以在其他 .c 文件中包含頭文件 add.h,然后將它鏈接到 add.c 的鏈接文件。
現(xiàn)在我們創(chuàng)建一個文件 triple.c,并在其中包含 add.h 頭文件:
#include
#include"add.h"int triple(int x){
return add(x, add(x, x));
}
void main() {
int x;
scanf("%d", &x);
printf("x=%d
", triple(x));
}
接下來就是使用 gcc 編譯它們,首先編譯 .c 源文件為 .o 鏈接文件:
$ gcc -c triple.c -o triple.o
$gcc -c add.c -o add.o
我們得到兩個鏈接文件 triple.o, add.o?,F(xiàn)在讓我們將它們鏈接成可執(zhí)行文件:
$ gcc triple.o add.o -o triple
讓我們測試一下可執(zhí)行文件 triple:
$ ./triple
12
x=36
總結(jié):頭文件是在預(yù)編譯階段使用,在預(yù)編譯時編譯器會使用頭文件中的內(nèi)容替換 #include 命令。