C 語言快速導覽 - 標頭檔

開發大型程式時,通常會把介面與實作分開。這是說,常數結構的定義與函數原型放在標頭檔中,也就是副檔名為 .h 的檔案,此即為介面,然後把函數的實際定義放在另一個 .c 的原始程式碼檔案裡,這就是實作。


實作檔須留意要用 #include 的前置處理器指令將標頭檔包含進來,至於實際程式的測試與執行,就另寫一個含有函數 main() 的 .c 的原始程式碼檔案,然後將實作檔與含有 main() 的原始檔一起編譯,便可產生可執行檔。


我們仍以函數 exponent() 為例做簡單示範,以下為標頭檔 exponent.h
1
2
3
4
5
6
7
8
int exponent(int, int);
 
/* 《程式語言:教學誌》的範例程式
    檔名:exponent.h
    功能:宣告函數 exponent() 的標頭檔
    作者:張凱慶
    時間:西元2010年4月 */


以下為實作介面 exponent.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "exponent.h"
 
int exponent(int a, int x)
{
    int result = 1;
     
    while (x > 0) {
        result *= a;
        x--;
    }
     
    return result;
}
 
/* 《程式語言教學誌》的範例程式
    檔名:exponent.c
    功能:指數函數的實作
    作者:張凱慶
    時間:西元2010年4月 */


以下為執行程式 exponentTest.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
#include "exponent.h"
 
int main(void)
{
    int i;
     
    for (i = 0; i <= 10; i++) {
        printf("%2d%5d\n", i, exponent(2, i));
    }
     
    return 0;
}
 
/* 《程式語言教學誌》的範例程式
    檔名:exponentTest.c
    功能:指數函數的實作
    作者:張凱慶
    時間:西元2010年4月 */


注意 exponent.c 的第 1 行
1
#include "exponent.h"


與 exponentTest.c 的第 3 行
3
#include "exponent.h"


實作檔與含有函數 main() 的執行檔都要將標頭檔 "exponent.h" 包含進來。


編譯時要同時編譯兩個檔案,如下



沒有留言: