#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 指令 identifier 中未定義或未定義 #undef 的定義。 這些指令僅檢查以 定義的 #define識別碼是否存在,而非 C 或 C++ 原始碼中宣告的識別碼。

這些指令僅為與先前版本語言相容而提供。 defined( ) identifier使用與指令相關的#if常數表達式是較為優先的。

指令 #ifndef 檢查條件的相反情況 #ifdef。 若識別碼尚未定義,或其定義已被移除, #undef則該條件為真(非零)。 否則,條件為假(0)。

Microsoft 專用

識別 碼 可透過 /D 指令列透過選項傳遞。 最多可指定 30 個巨集。/D

指令 #ifdef 用於檢查定義是否存在,因為定義可以從命令列傳遞。 例如:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

結束 Microsoft 特定內容

另請參閱

前置處理器指引