#define MIN(A,B) ((A)<(B)?(printf("A:%d/n",A)):(printf("B:%d/n",B)))
int main(void) {
int b=2;
int aa[]={1,3,5};
int *p=aa;
printf("*p:%d/n",*p);
MIN(*p++,b);
printf("*p:%d/n",*p);
return EXIT_SUCCESS;
}
运行结果是:
*p:1
A:3
*p:5
为什么“后++”在宏前后会有这样的变化,计算了两次