本日の復習
関数形式マクロ
#define mul(a, b) ((a) * (b))
a = mul(5, 4);
の様に使うと、5 * 4の結果を返す。
((a) * (b))
としているのは、変数を使って演算する時に計算の優先順位がおかしくなるため。
#define mul(a, b) (a * b) a = mul(x + 100, y + 200);
は、展開されると以下の様になり、意図した結果を得られない。
a = x + 100 * y + 200
#define mul(a, b) ((a) * (b))
a = mul(5, 4);
の様に使うと、5 * 4の結果を返す。
((a) * (b))
としているのは、変数を使って演算する時に計算の優先順位がおかしくなるため。
#define mul(a, b) (a * b) a = mul(x + 100, y + 200);
は、展開されると以下の様になり、意図した結果を得られない。
a = x + 100 * y + 200