分享方式:


#ifdef#ifndef 指示詞 (C/C++)

#ifdef#ifndef 預處理器指示詞與 運算子搭配使用 defined 時,效果與 指示詞的效果相同 #if

語法

#ifdef identifier
#ifndef identifier

這些指示詞相當於:

#if defined identifier
#if !defined identifier

備註

您可以在任何位置 #if 使用 #ifdef#ifndef 指示詞。 #ifdefidentifier 語句相當於 #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 特定的

另請參閱

預處理器指示詞