#define B 100+B
main()
{
int i= B;
}
Я знаю, что это неправильно, но просто из любопытства, когда я его компилирую, я получаю эту странную ошибку:
"B was not declared in this scope".
Почему это так?Если эта ошибка была вызвана тем, что компилятор удаляет макрос после его замены, то как следующий код работал нормально, когда B должен был быть удален до того, как он стал доступным для A ?
#define B 100
#define A 100+B
main()
{
int i= B;
int j =A;
}