#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;
}
Пожалуйста, объясните, приведенный выше код (если другое условие/и как он печатает «Odd» и «Even»)Как этот код печатает нечетные и четные?
В двоичном представлении нечетное число имеет младший значащий бит, но четные числа не потому, что (частота 2). '& 1' проверяет этот бит и берет' Odd' путь, когда бит установлен и 'равно 'в противном случае. Для 'MACRO' это простая замена текста, вы можете попробовать вручную. –
Я голосую, чтобы закрыть этот вопрос не по теме, потому что это не показывает никаких исследований. –