#define EVEN(x) x%2==0?1:0
mani()
{if(EVEN(9+1)) printf("is even");
else printf("is odd");}
结果为什么是is odd ???
#define EVEN(x) x%2==0?1:0
mani()
{if(EVEN(9+1)) printf("is even");
else printf("is odd");}
结果为什么是is odd ???
EVEN(9+1)等价于:9+1%2==0?1:0
注意运算规则,我用括号表示下:(9+(1%2)==0)?1:0
也就是说上面的表达式的结果是判断:10==0?1:0
显然10!=0,所以返回的是0,而不是1;
所以 IF条件不成立,输出else的内容
是奇数的意思