Этот фрагмент кода работает отлично и выдает выходное значение как 4.
#include<stdio.h>
#if X==5
#define Y 5
#else
#define Y 4
#endif
void main()
{
printf("%d",Y);
}
В то время как этот фрагмент кода возвращает ошибку «X undeclared».
#include<stdio.h>
#if X==5
#define Y 5
#else
#define Y 4
#endif
void main()
{
printf("%d",X);
}
Если макросне определено, препроцессор должен присвоить ему значение 0 по умолчанию.Тогда почему я не получаю вывод как '0' во втором куске кода?Если X необъявлено, согласно ошибке, как был успешно скомпилирован необъявленный макрос без каких-либо ошибок в первом фрагменте кода?Пожалуйста, объясните простыми словами.Заранее спасибо.