#define f(x) x*x
#include <stdio.h>
/*int main(){
int i;
i=f(2+2)/f(1+1);
printf("%d\n",i);
}
*///这是原题的代码
int main(){
int i;
i=2+2*2+2/1+1*1+1;
printf("%d\n",i);
}//这应是宏展开后的代码
我测试了一下,两种运行结果完全一致,都是10,答案可能有问题,你自己试试。
追问想问问为什么展开是2+2×2+2,刚开始学C语言不太懂
大神能在问问这个第八题字符串最后的\0asdfs为什么只算一个字符
追答1.宏展开,在大多数简单情况下可理解为替换。
2.\0是字符串的结束标志,当遇到\0时,这个字符串“结束”。