プリプロセッサ ディレクティブ (DirectX HLSL)

#define や #ifdef などのプリプロセッサ ディレクティブの一般的な用途は、さまざまな実行環境でソース プログラムを簡単に変更およびコンパイルできるようにすることです。ソース ファイル内のディレクティブは、プリプロセッサに特定の処理を実行するように指示します。たとえば、プリプロセッサは、テキスト内のトークンを置換したり、他のファイルの内容をソース ファイルに挿入したり、テキストのセクションを削除することでファイルの一部のコンパイルを抑止したりできます。プリプロセッサ行は、マクロ展開の前に認識されて実行されます。したがって、マクロの展開結果がプリプロセッサ コマンドのように見える場合でも、そのコマンドはプリプロセッサに認識されません。

プリプロセッサ ステートメントでは、ソース ファイル ステートメントと同じ文字セットが使用されますが、エスケープ シーケンスはサポートされません。プリプロセッサ ステートメントで使用される文字セットは実行文字セットと同じです。プリプロセッサは、負の文字値も認識します。

HLSL プリプロセッサは、次のディレクティブを認識します。

ディレクティブが含まれる行では、番号記号 (#) が最初の非空白文字である必要があります。この番号記号とディレクティブの先頭文字の間には、空白文字を挿入できます。一部のディレクティブには引数または値が含まれています。ディレクティブに続くテキストは (そのディレクティブの一部である引数や値は除く)、1 行コメント区切り記号 (//) の後に記述するか、コメント区切り記号 (/* */) で囲む必要があります。プリプロセッサ ディレクティブが含まれた行を次行にまたがらせるには、行末記号の直前に円記号 (¥) を入力します。

プリプロセッサ ディレクティブは、ソース ファイルの任意の箇所に配置できますが、ソース ファイルのその箇所以降にしか適用されません。

関連項目

付録 (DirectX HLSL)