Bonjour,
J'ai le code suivant qui ne me génère pas d'erreur :
=> je ne peux pas modifier TOTO car il est défini dans une bibliotheque
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 typedef enum _TOTO { VAL1 = 0, VAL2, VAL3 } TOTO; #define MY_CONFIG VAL2 #if (MY_CONFIG == VAL1) // ... #else #error Config error #endif
Comment faire pour détecter l'erreur ?
=> a priori, le pre-processeur remplace VAl1 et VAL2 par la valeur 0 car les définitions qui sont dans l'enum ne sont pas vues par celui-ci
=> j'ai le message d'erreur qui s'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 typedef enum _TOTO { VAL1 = 0, VAL2, VAL3 } TOTO; #ifndef VAL1 #error VAL1 undef #endif
Merci d'avance
-----------
Remarque :
Dans un fichier .h, je déclare la valeur de CONFIG pour dire dans qu'elle configuration je suis
Et dans un .c j'utilise CONFIG comme paramêtre d'une fonction (la fonction fait partie d'une bibliotheque que je ne peux pas modifier) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part configFunc(CONFIG);
Partager