共用方式為


#ifdef 和 #ifndef 指示詞

預處理器指示詞,判斷是否已定義特定的預處理器常數或宏。

#ifdef 識別碼 ...
#endif
#ifndef 識別碼 ...
#endif

參數

項目 描述
識別碼
要檢查之常數或宏的識別碼。

備註

您可以使用#ifdef和#ifndef指示詞,在任何可以使用 #if 的地方。 #ifdef 語句相當於 ) 指示詞。 這些指示詞只會檢查使用 #define 指示詞定義的識別碼是否存在,不適用於 C 或 C++ 原始程式碼中所宣告的識別碼。

提供這些指示詞的目的只是為了保留與舊版語言的相容性。 最好使用 已定義的 運算子搭配 #if 指示詞。

#ifndef 指示詞會檢查與 #ifdef 所檢查之條件相反的條件。 如果未定義識別碼,條件為 true (非零) ;否則,條件為 false (零) 。

範例

identifier 可以從命令列使用 /D 選項傳遞。 使用 /D 最多可以指定 30 個巨集。 這個選項在檢查定義是否存在時很實用,因為可以從命令列傳遞定義。 下列範例會使用此行為來判斷是否要在測試模式中執行應用程式。

// PROG.CPP
#ifndef test
  #define final
#endif
int main()
{
}

使用下列命令編譯時,prog.cpp 會在測試模式中編譯;否則,它會在最終模式中編譯。

CL.EXE /Dtest prog.cpp

另請參閱

DirectX HLSL (預處理器指示詞)

#if、)