两个C语言的小问题(预处理命令)
#define abc(x,y) (x)<(y)?(x):(y)
main()
{int a=10,b=15,c;
c=10*abc(a,b);
printf("%d",c);}
我只能做出100,可是答案是15,不知是为什么?
#define A 5.5
#define B(x) A*x*x
main()
{int a=1,b=2;;
printf("%f",B(a+b));}
这个答案是9.5,这又是为何? 先谢了!
参考答案:1.
c = 10*abc(a,b)
= 10 * (x)<(y)?(x):(y)
= 10 * 10 < 15 ? 10 : 15
= 100 < 15 ? 10 : 15
= 15
2.
B(a+b) = A * a+b * a+b
= 5.5 * 1 + 2 * 1 + 2
= 5.5 + 2 + 2
= 9.5