2012-03-07 117 views
0

可能重複:
C++ Header orderC++頭文件包括組織

我的問題是關於包括.h文件。是否最好首先包含所有標準頭文件,例如iostream,並且只有在所有用戶頭文件之後,反之亦然?我搜索了一段時間,但還沒有找到任何建議。

+2

在我的實踐我第一次有系統的頭之後,我包括用戶頭部。 – v01d 2012-03-07 08:52:41

+1

閱讀也是這個線程:http://stackoverflow.com/questions/614302/c-header-order – 2012-03-07 08:57:57

回答

7

它是一種個人的選擇,我用它在以下順序:

<standard headers> 
<platform headers> 
<project headers> 
2

我個人的偏好是從下往上。因此特定於平臺的頭文件首先是C++標準頭文件,然後是核心庫(比如boost),然後是更高級庫(比如數據庫),然後是特定於項目的頭文件。

+0

嗯,重點是,我也讀過赫伯特Schildt書中的相同的信息,但我的老闆昨天說我是一種「糟糕的編碼風格」......無論如何感謝您的關注。 – besworland 2012-03-07 09:04:19

0

一個*.cc文件應該首先#include系統頭,然後用戶的報頭(否則命名系統庫和您自己的代碼將有奇怪的行爲之間的衝突;但你應該避免這種衝突)。但是你可以把所有的#include放在頭文件中。

您可能會決定讓一個用戶頭包含您的應用程序所需的系統頭文件的所有#include;這有助於在Linux上編譯GCC時預編譯頭文件。請參閱this answer

0

已經有一個關於這個話題:

C++ Header order

但總的來說,你必須確保有在頭的順序並不重要。

0

包括的順序無所謂,你可以從任何你想要開始,也可以結束。

我不知道如果我正確地回答,這就是我理解的......