我們都聽過這樣的說法:
使用#include<> 程序會直接到標准函數庫中找文件 使用#include"" 程序會會先從當前目錄中找文件,如果找不到會再到標准函數庫中找文件
所以,一般情況下我們引用標准函數庫中的頭文件時,用#include<>能有更高的效率,但是其實它的查找順序非常嚴格:
1.#include<>
1.在編譯器設置的include路徑內搜索;
2.如果是在命令行中編譯,則在系統的INCLUDE環境變量內搜索。
2 #include”“
1.在包含當前include指令的文件所在的文件夾內搜索;
2.如果上一步找不到,則在之前已經使用include指令打開過的文件所在的文件夾內搜索,如果已經有多個被include的文件,則按照它們被打開的相反順序去搜索;
3.如果上一步找不到,則在編譯器設置的include路徑內搜索;
4.如果上一步找不到,則在系統的INCLUDE環境變量內搜索。
所以,要注意的一點就是,如果我們自己寫的頭文件,而不是標准庫函數中的,那么引用這個頭文件要使用#include""
,而不能使用#include<>
,因為我們自己寫的頭文件並不在編譯器設置的路徑內,使用#include<>
會提示無法找到。
參考鏈接: