#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 特定的