C 語言快速導覽 - 標頭檔

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


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


我們仍以函數 exponent() 為例做簡單示範,以下為標頭檔 exponent.h
int exponent(int, int);

/* 《程式語言:教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:exponent.h
    功能:宣告函數 exponent() 的標頭檔
    作者:張凱慶
    時間:西元2010年4月 */


以下為實作介面 exponent.c
#include "exponent.h"

int exponent(int a, int x)
{
    int result = 1;
    
    while (x > 0) {
        result *= a;
        x--;
    }
    
    return result;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:exponent.c
    功能:指數函數的實作
    作者:張凱慶
    時間:西元2010年4月 */


以下為執行程式 exponentTest.c
#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;
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:exponentTest.c
    功能:指數函數的實作
    作者:張凱慶
    時間:西元2010年4月 */


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


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


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


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



沒有留言: