#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'測試這個位,並且當位被設置時採用「奇數」路徑,否則採用「偶數」。對於'宏'這是簡單的文字替換,你可以嘗試用手。 –
我投票結束這個問題作爲題外話,因爲這沒有顯示任何研究工作。 –