#undef ディレクティブ
#define ディレクティブを使用して以前に定義された定数またはマクロの現在の定義を削除するプリプロセッサ ディレクティブ。
#undef 識別子 |
---|
パラメーター
項目 | 説明 |
---|---|
識別子 |
定義を削除する定数またはマクロの識別子。 マクロを未定義にしている場合は、パラメーター リストではなく識別子のみを指定します。 |
解説
#undef ディレクティブは、以前の定義がない識別子に適用できます。これにより、識別子が未定義になります。 マクロの置換は、#undef ステートメント内では実行されません。
通常、#undef ディレクティブは 、識別子 が特別な意味を持つソース プログラムにリージョンを作成するために、#define ディレクティブとペアになっています。 たとえば、ソース プログラムの特定の関数でマニフェスト定数を使用すると、プログラムの残り部分に影響を与えない環境固有の値を定義できます。 #undef ディレクティブは、ソース プログラムの条件付きコンパイルを制御する [) ディレクティブでも動作します。
/U オプションを使用して、コマンド ラインから定数とマクロを未定義にし、その後に未定義の識別子を指定できます。 これは、ソース ファイルの先頭に #undef ディレクティブのシーケンスを追加するのと同じです。
例
次の例では、#undef ディレクティブを使用して、シンボリック定数とマクロの定義を削除する方法を示します。
#define WIDTH 80
#define ADD( X, Y ) (X) + (Y)
#undef WIDTH
#undef ADD