プリプロセッサ

提供: langdev
移動: 案内検索

ソースコードを、コンパイラ(またはインタプリタ)が処理する前に、何らかの前処理をするのがプリプロセッサである。

他の構文と違うセマンティクスを持つため、予想外の挙動を示すため、 最近のプログラミング言語やインタプリタ系言語では、実装されない(Javaなど)または、 縮小された機能のみを持つ(C#など)事も多い。

その場合でも、前処理としてコンパイラとは独立しているため、 コンパイラに通す前に別途プリプロセッサを通す事で、任意の言語にプリプロセッサを追加できる。 例えば、Javaにコメントを元にプリプロセスする事ができる。[1]

条件文[編集]

C言語,C++,C#など。

渡されたコマンドラインオプションなどを元に、ソースコード中の特定の範囲などを消す。

#ifdef DEBUG
  printf("Debug: %d\n", x);
#endif

マクロ[編集]

C言語,C++など。 ソースコード中の特定の文字列を別の文字列に変更する。

#def MAX 100
for (int i=0;i<MAX;i++) {
  printf("%d\n", i);
}