Share via


#undef ディレクティブ (DirectX HLSL)

以前に #define ディレクティブを使用して定義された定数またはマクロの現在の定義を削除するプリプロセッサ ディレクティブです。

#undef identifier

パラメーター

  • identifier
    定義を削除する定数またはマクロの識別子です。マクロを定義解除する場合は、パラメーター リストを指定せずに、識別子のみを指定します。

解説

#undef ディレクティブは、事前の定義を持たない識別子に適用できます。これにより、その識別子が未定義であることが保証されます。#undef ステートメント内では、マクロ置換は実行されません。

#undef ディレクティブは、通常は #define ディレクティブと対で使用され、識別子が特別な意味を持つ領域をソース プログラム内に作成します。たとえば、ソース プログラムの特定の関数でマニフェスト定数を使用すると、プログラムの残り部分に影響を与えない環境固有の値を定義できます。また #undef ディレクティブは、#if ディレクティブと連係して、ソース プログラムの条件付きコンパイルを制御します。

定数とマクロを定義解除するには、コマンド ラインで /U オプションを使用して、その後ろに定義解除する識別子を指定します。この方法は、ソース ファイルの先頭に一連の #undef ディレクティブを追加することと機能的に同じです。

次の例は、#undef ディレクティブを使用して、シンボリック定数およびマクロの定義を削除する方法を示しています。

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

関連項目

プリプロセッサ ディレクティブ (DirectX HLSL), #define ディレクティブ (DirectX HLSL), #if、#elif、#else、および #endif ディレクティブ (DirectX HLSL)