C語言#include指令

#include預處理器指令用於將給定檔的代碼導入(粘貼)到當前檔中。它用來包括系統定義和用戶定義的頭檔。如果未找到包含的檔,則編譯器會呈現錯誤。

通過使用#include指令,我們向預處理器提供檔案名以查找頭檔。使用#include指令有兩種變體。

  1. #include
  2. #include “filename”

#include <filename>告訴編譯器查找保存系統頭檔的目錄。在UNIX中,它是\usr\include目錄。
#include “filename”指示編譯器查看運行程式的當前目錄。

#include指令示例

下麵來看看一個#include指令的簡單例子。在這個程式中,我們包括stdio.h檔,因為在這個stdio.h檔中定義了printf()函數。

#include <stdio.h>
main() {
   printf("Hello C");
}

執行上面示例代碼,得到以下結果 -

Hello C

#include注意事項:

事項1:在#include指令中,注釋不被識別。所以在#include <a//b>的情況下,a//b將被視為檔案名。

事項2:在#include指令中,反斜杠被認為是普通文本不是轉義序列。所以在#include <a\nb>的情況下,\nb被視為檔案名。

事項3:只能在檔案名後使用注釋,否則會給出錯誤。

#include、#include 與 #include “xxx.h”的區別:

  • #include<xxx.h>:系統自帶的頭檔用尖括弧括起來,這樣編譯器會在系統檔目錄下查找。假如你編譯器定義的自帶頭檔引用在 D:\worksp\inc\ 下麵,則 #include<stdio.h> 引用的就是 D:\worksp\inc\stdio.h 這個頭檔,不管你的專案在什麼目錄裏, D:\worksp\inc\stdio.h 這個路徑就定下來了,一般是引用自帶的一些頭檔,如:stdio.hconio.hstring.hstdlib.h 等等。

  • #include “xxx.h”:用戶自定義的檔用雙引號括起來,編譯器首先會在用戶目錄下查找,然後在到C++安裝目錄(比如VC中可以指定和修改庫檔查找路徑,Unix和Linux中可以通過環境變數來設定)中查找,最後在系統檔中查找。
    假如你的專案目錄是在 D:\Projects\tmp\ ,則 #include "my.h" 引用的就是 D:\Projects\tmp\my.h 這個頭檔,一般是用來引用自己寫的一些頭檔。如果使用 #include "" ,它是會先在你專案的當前目錄查找是否有對應頭檔,如果沒有,它還是會在對應的引用目錄裏面查找對應的頭檔。例如,使用 #include "stdio.h" 如果在你專案目錄裏面,沒有 stdio.h 這個頭檔,它還是會定位到 D:\worksp\inc\stdio.h 這個頭檔的。


上一篇: C語言宏 下一篇: C語言#define指令