一道c的问题,急!!

来源:百度知道 编辑:UC知道 时间:2024/05/16 23:00:36
若有宏定义:#define MOD(x,y) x%y
则执行下列语句后输出( )
inta=13,b=94;
printf("%d\n",MOD(b,a+4);
答案是9,为什么?

我感觉答案不是9,应该是7才对,理由如下:
printf("%d\n",MOD(b,a+4);
宏展开以后就变为printf("%d\n",b%a+4);
由于都是算数运算符的话,遵从先乘除后加减,94%13+4所以答案为7.
如果宏定义改为 #define MOD(x,y) (x)%(y)
展开后就变为
printf("%d\n",(b)%(a+4));
94%17,结果就是9

94%17

求余运算.

94/7 =5 余 9