#define MACRO(num, str) {\
printf("%d", num);\
printf(" is");\
printf(" %s number", str);\
printf("\n");\
}
int main(void)
{
int num;
printf("Enter a number: ");
scanf("%d", &num);
if (num & 1)
{
MACRO(num, "Odd");
}
else
{
MACRO(num, "Even");
}
return 0;
}
请解释上面的代码(如果/ else条件以及它如何打印“奇”和“偶”)此代码如何打印奇数和偶数?
在二进制表示中,奇数具有最低有效位集,但偶数不会因为(频率2)。 '&1'测试这个位,并且当位被设置时采用“奇数”路径,否则采用“偶数”。对于'宏'这是简单的文字替换,你可以尝试用手。 –
我投票结束这个问题作为题外话,因为这没有显示任何研究工作。 –