#include<stdio.h>
#define abse(i) ( (i) >= 0 ? (i) : -(i) )
// 返回 i的绝对值的内联函数
int main()
{
int val,x=6;
val=(abse(x++));
printf(“%d\n%d\n”,val,x);
return 0;
}
输出结果是 7 和 8
想不明白啊!求解释
解决方案:20分
因为替换后变成了:( (x++) >= 0 ? (x++) : -(x++) )
所以x++被调用了两次,所以建议用内联函数,而不要用宏