|
#include <>格式:引用標(biāo)準(zhǔn)庫(kù)頭文件,編譯器從標(biāo)準(zhǔn)庫(kù)目錄開(kāi)始搜索
#incluce ""格式:引用非標(biāo)準(zhǔn)庫(kù)的頭文件,編譯器從用戶(hù)的工作目錄開(kāi)始搜索
雙引號(hào)表示先在程序源文件所在目錄查找,如果未找到則去系統(tǒng)默認(rèn)目錄查找,通常用于包含程序作者編寫(xiě)的頭文件;
尖括號(hào)表示只在系統(tǒng)默認(rèn)目錄或者括號(hào)內(nèi)的路徑查找,通常用于包含系統(tǒng)中自帶的頭文件;尖括號(hào):
在包含文件目錄中去查找(包含目錄是由用戶(hù)在設(shè)置環(huán)境時(shí)設(shè)置的),而不在源文件目錄去查找; 雙引號(hào):
首先在當(dāng)前的源文件目錄中查找,若未找到才到包含目錄中去查找。 詳解:
預(yù)處理器發(fā)現(xiàn) #include 指令后,就會(huì)尋找后跟的文件名并把這個(gè)文件的內(nèi)容包含到當(dāng)前文件中。被包含文件中的文本將替換源代碼文件中的#include指令,就像你把被包含文件中的全部?jī)?nèi)容鍵入到源文件中的這個(gè)位置一樣。 #include 指令有兩種使用形式
#include <stdio.h> 文件名放在尖括號(hào)中 #include “mystuff.h” 文件名放在雙引號(hào)中
尖括號(hào)< 和> 括起來(lái)表明這個(gè)文件是一個(gè)工程或標(biāo)準(zhǔn)頭文件。查找過(guò)程會(huì)檢查預(yù)定義的目錄,我們可以通過(guò)設(shè)置搜索路徑環(huán)境變量或命令行選項(xiàng)來(lái)修改這些目錄。
如果文件名用一對(duì)引號(hào)括起來(lái)則表明該文件是用戶(hù)提供的頭文件,查找該
文件時(shí)將從當(dāng)前文件目錄(或文件名指定的其他目錄)中尋找文件,然后再在標(biāo)準(zhǔn)位置尋找文件。 為什么要包含文件呢?
因?yàn)檫@些文件包含了編譯器所需的信息。例如,stdio.h文件通常包含EOF,NULL, getchar()和putchar()的定義。
包含大型頭文件并不一定顯著增加程序的大小。很多情況下,頭文件中的內(nèi)容是編譯器產(chǎn)生最終代碼所需的信息,而不是加到最終代碼里的具體語(yǔ)句。
被包含的文件還可以含有#include 指示符,由于嵌套包含文件的原因,一個(gè)頭文件可能會(huì)被多次包含在一個(gè)源文件中,條件指示符可防止這種頭文件的重復(fù)處理。
|
|