<分区>
学习C语言时测试一些代码,
#include <stdio.h>
#include <math.h>
#define hypotenusa(x, y) sqrt((x) * (x) + (y) * (y))
int main(void) {
int a, x;
x = 2;
a = hypotenusa(++x, ++x);
printf("%d\n", a);
}
我得到了答案
6
在一个程序中(dosbox gcc 编译器)7
在 codelight gcc 编译器和8
在 codeChef 在线编译器上
谁能解释一下这种行为?
我的逻辑说它应该是 6
(sqrt(42)
) 但是...