3 回答

TA貢獻1801條經驗 獲得超8個贊
它取決于編譯器。也就是說,通常,使用"當前工作目錄中的標頭優先于系統標頭。 <>通常用于系統頭文件。從到規范(第6.10.2節):
形式的預處理指令
# include <h-char-sequence> new-line
在實現定義的位置序列中搜索由<和>分隔符之間的指定序列唯一標識的標頭,并用該標頭的整個內容替換該指令。實現位置是如何指定位置或標識標題的。
形式的預處理指令
# include "q-char-sequence" new-line
導致用"分隔符之間指定序列標識的源文件的全部內容替換該指令。以實現定義的方式搜索命名的源文件。如果不支持此搜索,或者搜索失敗,則將偽指令重新讀取,就像讀取
# include <h-char-sequence> new-line
具有與>原始指令相同的包含序列(包括字符,如果有的話)。
因此,在大多數編譯器上,使用第""一個檢查您的本地目錄,如果找不到匹配項,則繼續檢查系統路徑。使用<>開始使用系統標題進行搜索。

TA貢獻2039條經驗 獲得超8個贊
使用尖括號時,編譯器會在包含路徑列表中搜索文件。當使用雙引號時,它首先搜索當前目錄(即正在編譯的模塊所在的目錄),然后才搜索包含路徑列表。
因此,按照慣例,將尖括號用于標準包含,雙引號用于其他所有內容。這樣可以確保在(不建議)情況下,如果您具有與標準標頭同名的本地標頭,則在每種情況下都將選擇正確的標頭。

TA貢獻1780條經驗 獲得超5個贊
我不明白an implementation-defined manner
=是怎么回事your local directory
。是manner
==,places
并且place
某種程度上是靜態的,而不是動態的工作目錄?因此,有一個manner
用于搜索您的工作目錄的目錄嗎?
- 3 回答
- 0 關注
- 590 瀏覽
添加回答
舉報