Je suis en train de compiler mon programme qui tournera sur linux gcc 4.4.1 C99. Je venais de mettre mes #defines pour séparer le code qui sera compilé sur Windows ou Linux. Cependant, j'ai eu cette erreur.différence entre #if defined (WIN32) et #ifdef (WIN32)
error: macro names must be identifiers.
En utilisant ce code
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Cependant, quand je l'ai changé à ce l'erreur a été fixé:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Je me demandais pourquoi je suis cette erreur et pourquoi les #defines sont différents?
Un grand merci,
ouais, mais vous pouvez également cascader #ifdef UNIX aveC#ifndef WIN32, et obtenir la même flexibilité (pas aussi lisible, je suis d'accord) – jpinto3912
@ jpinto3912 Mais ça devient encore plus poilu avec '||' – Aidiakapi
Si seulement ils venaient juste parti avec '#if defined (NAME)' depuis le début et évité de créer une instruction '# ifdef'. – Andy