Je compile mon programme qui fonctionnera sous linux gcc 4.4.1 C99.
Je mettais juste mes #defines pour séparer le code qui sera compilé sur Windows ou Linux. Cependant, j'ai eu cette erreur.
error: macro names must be identifiers.
Utiliser ce code
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Cependant, lorsque je suis passé à ceci, l'erreur a été corrigée:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Je me demandais simplement pourquoi j'avais cette erreur et pourquoi les #defines sont différents?
Merci beaucoup,
||
#if defined(NAME)
depuis le début et évitaient de créer une#ifdef
déclaration.et
sont identiques,
mais pour faire plusieurs choses à la fois, vous pouvez utiliser defined, comme
la source
#ifdef
vérifie si une macro de ce nom a été définie,#if
évalue l'expression et vérifie une valeur vraiela source
#if defined
et#ifdef
.