#undef のディレクティブ (C/C++)

#define(未定義になります) 以前に作成された名前を削除します。

#undef identifier

解説

#undef のディレクティブは 識別子 の現在の定義を削除します。したがって 識別子 の後続の発生はプリプロセッサによって無視されます。#undef を使用してマクロ定義を削除するにはマクロ 識別子を 指定します ; パラメーター リストを与えないでください。

事前に定義がない識別子に #undef のディレクティブを適用できます。これにより識別子が定義されていることを確認します。コントロールはマクロ #undef のステートメント内で実行されません。

#undef のディレクティブは #define のディレクティブと識別子に特別な意味を持つプログラムの作成元領域を作成するために使用されます。たとえば作成元のプログラムの特定の機能はのプログラムに影響しない環境固有の値を定義するためにマニフェスト定数を使用できます。#undef のディレクティブはディレクティブを #if の作成元プログラムの条件付きコンパイルを制御します。詳細については#elif#if #endif のディレクティブと#else を参照してください。

次の例では#undef のディレクティブは記号定数とマクロの定義を削除します。マクロの識別子を指定することに注意してください。

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Microsoft 固有の仕様 →

マクロを未定義にするマクロ名の先頭に /U オプションを使用してコマンド ラインから未定義です。このコマンドを実行するとファイルの先頭に #undef  マクロ名の シーケンスと同じです。

終了 Microsoft 固有の仕様→

参照

関連項目

プリプロセッサ ディレクティブ