E 'possibile dire al preprocessore C per verificare se una funzione (non una macro) è dichiarata? Ho provato quanto segue, ma non sembra funzionare:Verificare se la funzione è dichiarata con il preprocessore C?
#include <stdio.h>
int main(void)
{
#if defined(printf)
printf("You support printf!\n");
#else
puts("Either you don't support printf, or this test doesn't work.");
#endif
return 0;
}
Sono molto interessato alla ragione di questo. Le librerie con cui stai lavorando dovrebbero essere coerenti, per cogliere il tuo esempio: non ci sarà uno stdio.h senza printf e se printf potrebbe essere rimosso in un lontano futuro, non saprai ora come procede la sostituzione da chiamare. – flokra
Penso che non sia specificamente per printf, ma solo per qualsiasi nome di funzione. Ma, se vuoi sapere se le funzioni ci sono, basta chiamarlo - l'errore del compilatore ti dirà :-) – paxdiablo
Il mio principale incentivo è stato controllare funzioni come bcopy() o arc4random() (quando scrivi programmi multipiattaforma) , che non sono sempre definiti. – Michael