C 標頭檔案包含

2021-06-10 07:32:26 字數 927 閱讀 8298

c++編譯是一件非常費時的事情,為了盡量的減少編譯時間,必須更好的包含標頭檔案。

下面有幾條很重要的教條,可以參考。

(1) 在標頭檔案中能用類前置宣告代替標頭檔案包含的就用前置宣告。因為使用類前置宣告,當引用的類發生改變時,當前檔案不需要重新編譯。

(a)必須要包含標頭檔案的情況

(*) a繼承c,a類的標頭檔案中必須要包含c的標頭檔案;

(*)a中包含c類的成員變數,a類的標頭檔案中必須包含c的標頭檔案;

(*)a中的inline函式中引用到了c類的成員,a類的標頭檔案必須包含c的標頭檔案;

(b)可以用類的前置宣告代替標頭檔案的情況

(*)a中包含c類的指標成員或引用成員;

(*)a中宣告的函式的引數或返回值是c的變數(c型別,c指標型別,c引用型別);

(2)對於類需要的標頭檔案,盡量在原始檔中包含,而在標頭檔案中使用前置宣告。在原始檔中,只引用需要的標頭檔案,不需要的標頭檔案不引用。

(3)在原始檔中包含標頭檔案的順序遵循如下原則:原始檔對應的標頭檔案(類宣告)、c

標準庫、

c++標準庫、其它庫的標頭檔案、你自己工程的標頭檔案

(4)vs採用了一種預編譯標頭檔案機制,對於變動不大的宣告,應該放到預編譯標頭檔案中。

為了盡量少的在標頭檔案中包含其他標頭檔案,乙個類中應該盡量定義其他類的指標或引用資料成員,但是引用資料程式必須在建構函式中賦值,所以最終應該盡量在類中宣告其他類的指標資料成員

使用指標之前是否需要進行空值判斷:

在函式中,對應指標引數,如果不希望引數為空時,需要使用arrest來檢查引數是否為空。此語句只在debug版本有效,在正式發布後無效,不影響效率。

在呼叫帶有指標引數的函式時,最好在呼叫之前檢查一下指標是否為空。即遵循誰呼叫,誰檢查的原則。

C 標頭檔案包含順序

使用標準的標頭檔案包含順序可增強可讀性,避免隱藏依賴。h c 系統檔案 c 系統檔案 其他庫的 h 檔案 本專案內 h 檔案 h 本專案內 h 檔案 其他庫的 h 檔案 c 系統檔案 c 系統檔案 為了減少隱藏依賴,同時標頭檔案和其實現檔案匹配,應該先包含其首選項 即其對應的標頭檔案 google風...

C 標頭檔案的包含順序

一 google c 程式設計風格指南 裡的觀點 dir2 foo2.h preferred location see details below c system files.c system files.other libraries h files.your project s h files...

c 標頭檔案相互包含問題

c 中標頭檔案互相包含經常會出現編譯錯誤.示例 如下 h ifndef a h define a h include b.h includeusing namespace std class a endif a h a.cpp include a.h a a a a int a getvala vo...