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