#include < stdio.h>
#define SQR(x) x*x
void main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d',a);
}
#include < stdio.h>
#define SQR(x) x*x
void main()
{
int a=10,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d',a);
}
首先,需要明白的一个点是:宏定义的展开是在程序的预处理阶段完成的,而且是直接的展开,直接进行符号与数字替换,不会进行计算。
所以“(SQR(k+m)/SQR(k+m))”直接展开后是等于这样的形式“k+m*k+m/k+m*k+m”,也就是3+1*3+1/3+1*3+1=10,所以最后结果会是1。
哥们,你别顾着提问题,你前面的题目解答还没采纳呢,动动小手点一下采纳可以吗?