2012-08-08 12 views
2

可能重複:
What is the difference between #include <filename> and #include 「filename」?預處理器包括:當使用<>或 「」

我已經打了一個有點問題,在我的C學習,我有一個快速搜索這個網站上的問題,並找不到這個問題的答案。這可能有點愚蠢,但在這裏。

我一直在關注一些C教程和貫穿全書包括所有已經這樣做了:

#include <stdio.h> 
#include <string.h> etc. etc. 

突然然而,他們已經掉了這個炸彈殼:

#include <stdio.h> 
#include "structSize.h" 

絕對沒有解釋爲什麼使用"...",我完全傻眼了。任何人都可以提供一個解釋,什麼是<...>"..."之間的差異以及何時使用每一個。

感謝您的幫助。
問候,
邁克

回答

8

通常情況下,你在你的項目中使用#include "..."的文件,併爲#include <...>「系統」包含文件。

不同之處在於預處理器如何以及在何處根據要包含的名稱搜索文件。 ""語法通常會首先搜索當前文件的目錄。但是,實際的搜索機制是特定於編譯器的,因此您需要查看C編譯器的文檔以瞭解每個選項使用的實際路徑的詳細信息。

有關詳細信息,請參閱GCC的Include Syntax以獲取一個實現的示例。

+0

完美,謝謝。這是有道理的,因爲這是我們使用過的第一個自定義標題,顯然它不會是一個標準的系統包含。感謝您解決這個問題。問題解決了!當我允許時,我會在幾分鐘內標記答案。 – Mackey18 2012-08-08 16:53:19

2

使用""將在包含某些東西的文件所在的目錄中搜索該文件,如果未找到include,編譯器將查找標準包含目錄(它依賴於編譯器依賴於此文件夾) 。

使用<>編譯器將直接在include目錄中查看,而不查看任何其他目錄。

+0

謝謝你的回覆。讚賞。 – Mackey18 2012-08-08 17:13:58