Existe-t-il un moyen de vérifier l'égalité numérique dans les macros?
Je veux faire quelque chose comme
#define choice 3
#if choice == 3
....
#endif
#if choice == 4
...
#endif
Les macros C prennent-elles en charge des choses comme celle-ci?
En effet, cela devrait fonctionner. Voir http://gcc.gnu.org/onlinedocs/cpp/If.html#If
Cette référence est exacte, mais écrite en "format standard": abstraitement sans exemples.
Une autre façon d'écrire votre code utilise chaîné #Elif
directives:
#if choice == 3
...
#Elif choice == 4
...
#else
#error Unsupported choice setting
#endif
Notez que si choice
n'est pas #defined
, le compilateur (préprocesseur) le considère comme ayant la valeur 0
.
Pour autant que je sache, cela devrait fonctionner. Quel compilateur utilisez-vous ?
PS: Juste pour information, les noms définis sont généralement écrits en majuscules!
#define CHOICE 3