C語言引用頭文件使用的符號有兩種,以頭文件stdio.h為例:
(1)#include <stdio.h>
(2)#include “stdio.h”
這兩種引用方式是存在不同的。
第一種引用方式,編譯器僅在標准庫頭文件中進行匹配;
第二種引用方式,編譯器先在工程目錄下進行匹配,如果沒有,再到標准庫頭文件中查找。
這里進行了測試,應用VC++6.0,新建文件,首先是主文件Test.c:
#include <child.h> void main() { Test(); }
然后,為了簡化過程,只建立一個頭文件,並直接在頭文件內部放入函數實體,child.h:
#include <stdio.h> void Test() { printf("Hello World!\n"); }
嗯!程序報錯,錯誤原因:Cannot open include file: 'child.h': No such file or directory.文件child.h未找到。
然后主文件改為:
#include "child.h" void main() { Test(); }
程序正常編譯,輸出結果:Hello World!
很好的說明了兩種引用方式的不同。
然而,如果這時,再次將主文件引用方式改回:#include <stdio.h>,原來應該報錯的程序居然順利運行了。。。(原因不知道啊,可能是編譯器的缺陷,或者編譯器自動優化了吧)。針對這一情況,采用VS2015重新重復上述操作過程,不會出現VC++6.0中本應報錯的程序通過運行的情況。
所以,編程時,系統本身存在的頭文件最好用<>來引用,用戶自定義的頭文件必須用""來引用。