这种是带参数的宏定义,通常会将宏内容文本中的宏参数替换成文本。
我们直接用上我们这个来写一个例子进行计算。
#define SUM(x) 3*x*x+1
int main()
{
int i=5;
int j=8;
printf("%d\n",SUM(i+j));
}
计算机出来的答案是64。
我开始的错误思路是:
3*(5+8)*(5+8)+1
。
但是我们算出来的值与实际相差的。
正确的思路是:SUM不会把括号
也带过去,只把式子
带过去。
3*5+8*5+8+1
。
算出来正好与实际答案相同。