Это обычная программа на С, которую я обнаружил в каком-то банке вопросов. Это показано ниже:
#define CUBE(p) p*p*p
main()
{
int k;
k = 27 / CUBE(3);
printf("%d", k);
}
Согласно моему пониманию и знанию, значение K должно быть 1, поскольку CUBE (3) будет заменен на 3 * 3 * 3 во время предварительной обработки, и после последующей компиляции он будет давать значение 1, но вместо этого он имеет показал значение 81, что заставило меня любопытно узнать, как это произошло.
Может ли кто-нибудь обосновать ответ 81 на этот вопрос выше.