#include <stdio.h>
#define SQR(x) x*x
main()
{int a=10,k=3,m=2;
a=SQR(k+m);
printf("%d/n",a);
}
为什么输出是 11呢,我是菜鸟,我不解。
有哪位高手来看看,#define SQR(x) x*x 不是X和X的乘积嘛,
那k+m=5,那SQR(k+m)不是等于25嘛,为什么编译器给的是11呢
本文探讨了一个C语言程序中宏定义SQR(x)x*x的使用案例。通过具体代码示例解释了为何SQR(k+m)的计算结果为11而非预期的25,涉及宏替换的细节。
#include <stdio.h>
#define SQR(x) x*x
main()
{int a=10,k=3,m=2;
a=SQR(k+m);
printf("%d/n",a);
}
为什么输出是 11呢,我是菜鸟,我不解。
有哪位高手来看看,#define SQR(x) x*x 不是X和X的乘积嘛,
那k+m=5,那SQR(k+m)不是等于25嘛,为什么编译器给的是11呢
2310

被折叠的 条评论
为什么被折叠?