次の C コードを実行しています。
#define cube(x) (x*x*x)
void main()
{
int x=2,y;
y=cube(++x);
printf("%d %d",++x,y);
}
私は結果を期待しています
6,60
しかし、それは異なる結果をもたらしています。プリプロセッサについて誤解していると思います。コードは次のようになると思います
void main()
{
int x=2,y;
y=++x*++x*++x;
printf("%d %d",++x,y);
}
間違っている場合は修正してください。
結果が 3*4*5=60 になると解釈しています
が、125 になっています。