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