3
當你寫#include "foo.h"
我希望編譯器檢查文件做的,包括(相對於當前目錄)第一的目錄,如果沒有找到,然後退到一個搜索如在#include <foo.h>
的情況下的路徑列表。規則查找頭文件
除非指定了絕對路徑,#include "/foo.h"
,在這種情況下,只有絕對路徑,需要進行檢查。
是否有任何C語言編譯器,其中的規則有什麼不同?
當你寫#include "foo.h"
我希望編譯器檢查文件做的,包括(相對於當前目錄)第一的目錄,如果沒有找到,然後退到一個搜索如在#include <foo.h>
的情況下的路徑列表。規則查找頭文件
除非指定了絕對路徑,#include "/foo.h"
,在這種情況下,只有絕對路徑,需要進行檢查。
是否有任何C語言編譯器,其中的規則有什麼不同?
Kernighan的&裏奇寫:
[#包括爲「foo」]首先搜索與所述原始源文件關聯(故意實現相關的短語),並且如果該搜索失敗,則如在第一種形式。
這意味着,就行情的搜索策略沒有假設。但是,我遇到的所有編譯器都共享了首先在包含文件路徑中搜索的實踐,如果找不到,則回到編譯器的搜索路徑。
我正在使用gcc,但規則是相同的,你已經列出..!我認爲包括這些文件是c語言的一部分東西不是嗎? –
奇怪的是,語言規範說它是實現定義的。這就是爲什麼我想檢查是否有其他的實現。 – rwallace
哦然後+1給你...可能是一些交叉編譯工具鏈以其他方式做.. !! o/w gcc,sun studio,visual studio,turbo的編譯器,都遵循這個規則。 –