Почему следующий код не работает должным образом?
void foobar(int);
#ifndef foobar
printf("foobar exists");
#endif
Он всегда печатает сообщение; очевидно, что он не может обнаружить существование функции как объекта. (Это проблема перегрузки?)
Почему #ifdef
(или его варианты) не может обнаружить объявления функций? Декларации должны быть доступны на предварительномобработка, так что она должна работать, не так ли? Если нет, есть ли альтернатива или обходной путь?