#define SQUARE(x) ((x)*(x))のように、引数を取って処理を展開するマクロのこと。括弧の付け忘れが罠になりやすい。呼び出し方は関数に似ているが、実際は単なる文字列の置き換えである点に注意。
#defineで定義する、コンパイル前に文字通り置き換えられる名前のこと。定数や短い処理を、コード中の別名として使うことができる。コンパイラの目には、置き換えられた後の文字列だけが見えることになる。
関数形式マクロで引数を括弧で囲まないと、意図しない優先順位で展開されてしまう典型的な事故のこと。書き方の作法で防げる。SQUARE(1+2)が9ではなく5になってしまう、といった典型例が知られている。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。