c语言一道简单题

来源:百度知道 编辑:UC知道 时间:2024/05/09 07:59:08
#define S(x) 4*x*x+1
main()
{
int m=6,k=8;
printf("%d\n",S(m+k));
}
结果是81,请问如何得到的???

4*6+8*6+8+1=24+48+8+1=81

宏定义只是把参数原样替换,也就是把x替换成6+8,而不是先6+8=14后,再s(14)。

s(m+k) = 4 * m + k * m + k + 1
= 4 * 6 + 8 * 6 + 8 + 1
= 24 + 48 + 8 + 1
= 81

4*6+8*6+8+1

S(m+k) = 4 * m + k * m + k + 1
= 81

宏定义只是把参数原样替换

main()
{
int m=6,k=8;
printf("%d\n",4*m+k*m+k+1);
}

结果为81