[C] 如何使用頭文件 .h 編譯 C 源碼


  在 C 語言中,頭文件包含文件通常是一個源代碼文件,程序員使用編譯器指令將頭文件包含進其他源文件的開始(或頭部),由編譯器在處理另一個源文件時自動包含進來。

 

  一個頭文件一般包含類、子程序、變量和其他標識符的前置聲明。需要在一個以上源文件中被聲明的標識符可以放在一個頭文件中,使用時在其他源文件中包含該頭文件。

 

  頭文件作為模塊的公共接口,在其中聲明函數原型、對象和數據類型。

 

  讓我們首先創建一個頭文件 add.h:

 #ifndef _ADD_H_
 #define _ADD_H_
 
 int add(int, int);
 
 #endif 

 

  其中 #ifndef, #define, #endif 是編譯器指令,為了防止重復包含頭文件,最好將所有聲明置於 #ifndef ... #endif 區塊中。_ADD_H_ 是頭文件標識符,為了保持唯一性,一般為頭文件名大寫,並將其中的句號替換為下划線,同時前后各加一條下划線。

 

  然后讓我們再創建一個源文件 add.c 來實現 add.h 中聲明的函數原型:

 #include "add.h"
 
 int add(int a, int b)
 {
     return a + b;
 }

 

  至此我們就准備好了一個源碼文件 add.c 和一個頭文件 add.h,現在你可以在其他 .c 文件中包含頭文件 add.h,然后將它鏈接到 add.c 的鏈接文件。

 

  現在我們創建一個文件 triple.c,並在其中包含 add.h 頭文件:

#include <stdio.h>
#include "add.h"

int triple(int x){
    return add(x, add(x, x));
}

void main() {
    int x;
    scanf("%d", &x);
    printf("x=%d\n", triple(x));
}

 

  接下來就是使用 gcc 編譯它們,首先編譯 .c 源文件為 .o 鏈接文件:

$ gcc -c triple.c -o triple.o
$ gcc -c add.c -o add.o

 

  我們得到兩個鏈接文件 triple.o, add.o。現在讓我們將它們鏈接成可執行文件:

$ gcc triple.o add.o -o triple

 

  讓我們測試一下可執行文件 triple:

$ ./triple 
12
x=36

 

  總結:頭文件是在預編譯階段使用,在預編譯時編譯器會使用頭文件中的內容替換 #include 命令。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM