#include預處理器指令用于將給定文件的代碼導入(粘貼)到當前文件中。它用來包括系統(tǒng)定義和用戶定義的頭文件。如果未找到包含的文件,則編譯器會呈現(xiàn)錯誤。
通過使用#include指令,我們向預處理器提供文件名以查找頭文件。使用#include指令有兩種變體。
#include <filename>告訴編譯器查找保存系統(tǒng)頭文件的目錄。在UNIX中,它是\usr\include目錄。#include “filename”指示編譯器查看運行程序的當前目錄。
#include指令示例
下面來看看一個#include指令的簡單例子。在這個程序中,我們包括stdio.h文件,因為在這個stdio.h文件中定義了printf()函數(shù)。
#include <stdio.h>
main() {
printf("Hello C");
}
執(zhí)行上面示例代碼,得到以下結(jié)果 -
Hello C
#include注意事項:
事項1:在#include指令中,注釋不被識別。所以在#include <a//b>的情況下,a//b將被視為文件名。
事項2:在#include指令中,反斜杠被認為是普通文本不是轉(zhuǎn)義序列。所以在#include <a\nb>的情況下,\nb被視為文件名。
事項3:只能在文件名后使用注釋,否則會給出錯誤。
#include、#include
#include<xxx.h>:系統(tǒng)自帶的頭文件用尖括號括起來,這樣編譯器會在系統(tǒng)文件目錄下查找。假如你編譯器定義的自帶頭文件引用在 D:\worksp\inc\ 下面,則 #include<stdio.h> 引用的就是 D:\worksp\inc\stdio.h 這個頭文件,不管你的項目在什么目錄里, D:\worksp\inc\stdio.h 這個路徑就定下來了,一般是引用自帶的一些頭文件,如:stdio.h、conio.h、string.h、stdlib.h 等等。
#include “xxx.h”:用戶自定義的文件用雙引號括起來,編譯器首先會在用戶目錄下查找,然后在到C++安裝目錄(比如VC中可以指定和修改庫文件查找路徑,Unix和Linux中可以通過環(huán)境變量來設(shè)定)中查找,最后在系統(tǒng)文件中查找。
假如你的項目目錄是在 D:\Projects\tmp\ ,則 #include "my.h" 引用的就是 D:\Projects\tmp\my.h 這個頭文件,一般是用來引用自己寫的一些頭文件。如果使用 #include "" ,它是會先在你項目的當前目錄查找是否有對應(yīng)頭文件,如果沒有,它還是會在對應(yīng)的引用目錄里面查找對應(yīng)的頭文件。例如,使用 #include "stdio.h" 如果在你項目目錄里面,沒有 stdio.h 這個頭文件,它還是會定位到 D:\worksp\inc\stdio.h 這個頭文件的。