#include<stdio.h>
#define MAX(a,b) (a)>(b)?(a):(b)
int main()
{
int a=4,b=2,ret;
ret=MAX(a,b)+3;
printf("=%d,b=%d,ret=%d\n",a,b,ret);//由于运算符‘+’比运算符‘:’的优先级高,所以上述语句并不等价于期望的
return 0;
}
结果为
如果正确想要得的结果则修改为
#define MAX(a,b) ((a)>(b)?(a):(b))