来看下面的代码
#include <stdio.h>
#include <string.h>
#define CALL_WITH_MAX(a,b) ((a)>(b)?(a):(b))
int main()
{
int a= 5,b = 0;
CALL_WITH_MAX(++a , b);
printf("a:%d \r\n",a);
a = 5;
CALL_WITH_MAX(++a , b+10);
printf("a:%d \r\n",a);
}
输出:
a:7
a:6
a的大小取决于宏函数比较的情况,这是为什么?