c++中,定義標頭檔案時,為了避免標頭檔案被多次引用而造成的重複定義,需要將整個標頭檔案內容包含在下面的預編譯指令中(假設標頭檔案為file.h):
#ifndef file_h
#define file_h
// 標頭檔案的內容
#endif
這樣,如果標頭檔案file.h第一次被引用,巨集file_h尚未定義,因而定義該巨集並引用標頭檔案的內容。如果標頭檔案file.h再次被引用,這時巨集file_h已經被定義,因而不再重複定義,也不再引用該標頭檔案的內容,這樣就避免了同乙個標頭檔案由於被多次#include而造成的重複定義和編譯。
c 的預編譯指令
c 預處理器指令是在編譯時呼叫的。預處理器指令 preprocessor directive 告訴c 編譯器要編譯哪些 並指出如何處理特定的錯誤和警告。c 預處理器指令還可以告訴c 編輯器有關 組織的資訊。1.定義符號和取消符號定義的預處理指令 define 和 undef 預處理指令都以 號開頭並...
C 中的預編譯指令介紹
用法 define告訴編譯器,我定義了乙個debug的乙個符號,他類似乙個變數,但是它沒有具體的值,可以將它看為乙個符號而已。undef就是刪除這個符號的定義。如果符號debug沒定義過,則 undef不起作用,否則 define不起作用。二者都必須放在源 之前。看 的順序 define debug...
C 中的預編譯指令介紹
1 define和 undef 用法 define debug undef debug define告訴編譯器,我定義了乙個debug的乙個符號,他類似乙個變數,但是它沒有具體的值,可以將它看為乙個符號而已。undef就是刪除這個符號的定義。如果符號debug沒定義過,則 undef不起作用,否則 ...