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

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

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

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

シャープ記号 (#) は、ディレクティブを含む行の最初の空白以外の文字である必要があります。空白文字は、ディレクティブのシャープ記号と最初の文字の間に挿入できます。 一部のディレクティブには、引数または値が含まれます。 ディレクティブに続くテキスト (ディレクティブの一部である引数または値を除く) は、前に単一行のコメント デリミター (//) を付けるか、またはコメント デリミター (/* */) で囲む必要があります。 プリプロセッサ ディレクティブを含む行は、円記号 (\) を行末マーカーの直前に置くことにより続行できます。

プリプロセッサ ディレクティブはソース ファイル内の任意の場所で使用できますが、ソース ファイルの残りの部分だけに適用されます。

付録 (DirectX HLSL)