请解释输出 - 我输出为20, 但如果我没错,那应该是64岁。
#include<stdio.h>
#define SQUARE(X) (X*X)
main()
{
int a, b=6;
a = SQUARE(b+2);
printf("\n%d", a);
}
答案 0 :(得分:3)
正确的结果是20。
宏是简单的文本替换。
要查看结果为20,只需将X
替换为b+2
即可。然后你有:
b+2*b+2
因为b
是6,所以
6+2*6+2
是20
使用宏时,使用括号非常重要,因此宏看起来应该是
# define SQUARE(X) ((X)*(X))
然后结果将是64,因为评估是
(b+2)*(b+2)
(6+2)*(6+2)
8*8
64