プリプロセッサ ディレクティブ
#define
や #ifdef
のようなプリプロセッサ ディレクティブは通常、異なる実行環境でソース プログラムを簡単に変更したりコンパイルしたりするために使用されます。 ソース ファイルのディレクティブはプリプロセッサに特定のアクションを行なうよう通知します。 たとえば、プリプロセッサは、テキストのトークンを置き換えたり、ソース ファイルに他のファイルの内容を挿入したり、テキストのセクションの削除によりファイルの一部のコンパイルを中止したりできます。 プリプロセッサ行は、マクロの展開の前に認識され、実行されます。 したがって、マクロがプリプロセッサ コマンドのように見えるコマンドに展開されても、プリプロセッサによって認識されません。
プリプロセッサ ステートメントは、ソース ファイル ステートメントと同じ文字セットを使用しますが、エスケープ シーケンスはサポートされていません。 プリプロセッサ ステートメントで使用される文字セットは、実行文字セットと同じです。 プリプロセッサは、負の文字値も認識します。
プリプロセッサは次のディレクティブを認識します。
シャープ記号 (#
) は、ディレクティブを含む行の最初の非空白文字である必要があります。 空白文字をシャープ記号とディレクティブの最初の文字の間に入れることができます。 一部のディレクティブには、引数または値が含まれます。 ディレクティブに続くテキスト (ディレクティブの一部である引数または値を除く) は、前に単一行のコメント デリミター (//
) を付けるか、またはコメント デリミター (/* */
) で囲む必要があります。 プリプロセッサ ディレクティブを含む行は、円記号 (\
) を行末マーカーの直前に置くことにより続行できます。
プリプロセッサ ディレクティブはソース ファイル内の任意の場所で出現できますが、それらが適用されるのは、ソース ファイルでそれらが出現した後の残りの部分だけです。