Следующий код генерирует следующую ошибку компиляции:
Код:
int main(void)
{
#define a ((unsigned long) 0)
#if a > 2
while(1);
#endif
}
Ошибка:
main.c: In function 'main':
main.c:4:26: error: missing binary operator before token "long"
#define a ((unsigned long) 0)
^
main.c:5:9: note: in expansion of macro 'a'
#if a > 2
^
The command 'arm-none-eabi-gcc.exe' failed with exit code '1'.
Может ли кто-нибудь помочь понять, почему это происходит, только если использовать макрос «a» в выражении «#if»?