この数学が C のマクロで機能しないのはなぜですか?
#include <stdio.h>
#define FOO 6
#define BAR 32
#define MULT FOO * BAR
main() {
int x = 28296;
int y = x / MULT;
printf("%d / %d = %d\n", x, MULT, y);
return 0;
}
この結果は次のとおりです。
28296 / 192 = 150912
なんで147じゃないの?変数 "int mult" を MULT に設定し、その変数を式 ( int y = x / mult
) で使用すると、期待どおりに動作します。