#include <stdio.h>
#define P 3
#define S(a) P*a*a
void main()
{int ar;
ar=S(3+5);
printf("%d\n",ar);
}
答案为什么是29 不是192
那如果我将题目改为ar=S(3+5+1);那应该怎么算
追答如果宏定义没变化还是P*a*a的话,继续展开,3 * 3+5+1 * 3+ 5+1 = 23
宏定义最好加上括号,因为你可能用表达式,比如S(3+5)这样的,替换的话会出问题,good luck!
这样错在哪 3*(3+5)*(3+5)