因为你宏定义不够严谨展开后成了printf("result=%d\n",SUM(5,9)/2)printf("result=%d\n",5+9/2)定义改成#define SUM(a,b) (a+b)应该就好了
结果是9;因为编译器对于宏定义只做替换不做运算所以SUM(5,9)/2被替换后就变成了5+9/2 = 9
不知道