#include
もプリプロセスの機能の一つであった。
#define マクロ定義名 [値]によって、これ以降マクロ定義名で参照したものはプリプロセッサに よって値に置き換えられる。
#define マクロ定義名(引数並び) 引数を含む文字列
引数を含んだ置き換え機能であるが、副作用などがある点に注意が必要。 引数は括弧で囲んだ上に、引数を含む文字列自体も括弧で囲むのが安全だが、 それでも回避出来ない問題もある。
C の if とほぼ同じ意味であるが、マクロ定義がされていれば真となる。
#ifdef マクロ定義 ... #else ... #endif
逆の意味で #ifndef
は定義されていなければ真である。
より一般の #if
文も用意されている。
プリプロセッサのコマンドは通常 cc から自動的に呼び出されるが、 cpp コマンドを使って明示的に呼び出すことも出来る。