2012-08-01 239 views
0

可能重複:
What is the difference between #include <filename> and #include 「filename」?路徑包括

我創建一個共享的C庫。有包括

#include <mylib/someheader.h> 

#include "mylib/someheader.h" 

*.c或該庫的*.h文件時有什麼區別?

+0

使用引號時,它是您自己的頭文件。 – squiguy 2012-08-01 19:30:40

+0

此外,如果您忽略標題的路徑並僅包含名稱,它會使大型項目更具可讀性。您可以使用-I標誌爲gcc指定其他include目錄,例如:'gcc -c somefile.c -o someobj.o -I。/ mylib' – Wug 2012-08-01 19:32:16

+0

@Wug:這可能導致惡意衝突。 – Cartesius00 2012-08-01 19:33:55

回答

0

取決於編譯器。其中一些可以在「系統」包含路徑和「包含路徑」之間有所不同。 <>表示系統包括路徑

+0

標籤爲gcc標籤。 – Cartesius00 2012-08-01 19:31:35

1

第一個版本用於系統標題,第二個用於外部標題。 雖然大多數編譯器都會找到正確的頭文件,無論使用哪種符號。

+2

我相信兩者都會搜索相同的地方,區別在於<>先搜索庫位置,然後「」先搜索用戶位置。 – Wug 2012-08-01 19:33:33

+1

所以基本上,如果這涉及gcc,總會有閱讀該手冊的選項:http://gcc.gnu.org/onlinedocs/gcc-4.7.1/cpp/Include-Syntax.html – LodeRunner 2012-08-01 19:35:43