#ifdef と #ifndef

提供: RAD Studio
移動先: 案内検索

条件コンパイルの概要:インデックス への移動


構文

#ifdef identifier
#ifndef identifier

説明

#ifdef 指令と #ifndef 指令は、defined (identifier) 演算子の付いた下記の #if 指令と同じです。

#if defined identifier
#if !defined identifier

#ifdef 指令と #ifndef 指令を #if defined identifier 式の代わりに使用することができます。 ただし、#if defined identifier 式の方が望ましいでしょう。 #ifdef 指令と #ifndef 指令は、C++ 言語の旧バージョンとの互換性を保つためにのみ用意されています。

条件指令 #ifdef および #ifndef を使用すると、識別子が現在定義されているかどうかを検査できます。 つまり、その識別子の #define コマンドが前に処理されていて、その定義がまだ有効かどうかがわかります。 以下の

#ifdef identifier

は、identifier が現在定義されている場合は

#if 1

とちょうど同じ効果があり、identifier が現在定義されていない場合は

#if 0

と同じ効果があります。

#ifndefidentifier が "定義されていない" 場合に "真" に評価されるため、以下の

#ifndef identifier

は、identifier が現在定義されている場合は

#if 0

とちょうど同じ効果があり、identifier が現在定義されていない場合は

#if 1

と同じ効果があります。

その後の構文は、#if#elif#else#endif の構文に従います。

NULL と定義された識別子は、定義されていると見なされます。

関連項目