#ifdef
和 #ifndef
指示詞 (C/C++)
和 #ifdef
#ifndef
預處理器指示詞與 運算子搭配使用 defined
時,效果與 指示詞的效果相同 #if
。
語法
#ifdef
identifier
#ifndef
identifier
這些指示詞相當於:
#if defined
identifier
#if !defined
identifier
備註
您可以在任何位置 #if
使用 #ifdef
和 #ifndef
指示詞。 #ifdef
identifier
語句相當於 #if 1
已定義時的 identifier
。 它相當於 #if 0
未定義 或 指示詞未定義 #undef
時的 identifier
。 這些指示詞只會檢查 #define
所定義的識別項是否存在,不適用於 C 或 C++ 原始程式碼中宣告的識別項。
提供這些指示詞的目的只是為了保留與舊版語言的相容性。 defined(
)
identifier
慣用搭配 指示詞使用的 #if
常數運算式。
指示 #ifndef
詞會檢查 所檢查 #ifdef
之條件的相反。 如果尚未定義識別碼,或已使用 #undef
移除其定義,則條件為 true (非零)。 否則,條件為 false (0)。
Microsoft 特定的
您可以使用 /D
選項,從命令列傳遞識別碼 。 最多可以使用 指定 /D
30 個宏。
指示 #ifdef
詞可用於檢查定義是否存在,因為定義可以從命令列傳遞。 例如:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
END Microsoft 特定的
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: