Inclure une énumération (langage C)

Résolu/Fermé
Flo - Modifié par Flo le 7/07/2011 à 10:41
 Flo - 7 juil. 2011 à 11:07
Bonjour,


J'ai créé un projet en C qui contient entre autres le header boolean.h :

 typedef enum Boolean Boolean; 
enum Boolean 
{ 
    FALSE = 0, TRUE = 1 
}; 


J'inclus boolean.h dans plusieurs fichier.c et leur équivalent fichier.h (contenant uniquement les prototypes) qui utilisent le "type" Boolean.

Et le problème est ici : lorsque je compile, on me dit que je redéclare l'énumération Boolean dans mon fichier boolean.h...

Comment résoudre ça ? Merci d'avance pour vos réponses.

2 réponses

Bonjour,

Dans ton boolean.h, tu ne devrais refaire les "define" que s'ils ne sont pas déjà faits. C'est d'ailleurs vrai pour tius les fichiers .h
#ifndef BOOLEAN_H
#define BOOLEAN_H
 typedef enum Boolean Boolean; 
enum Boolean 
{ 
    FALSE = 0, TRUE = 1 
}; 
#endif
Comme ça, si tu inclus plusieurs fois le fichier, la première fois BOOLEAN_H n'est pas défini et il prend la définition de BOOL ; ensuite, comme BOOLEAN_H est déjà défini, il ne fait rien.

Note que le boolean.h peut (doit) être inclus dans les fichiers .c mais qu'habituellement on n'inclut pas de .h dans les .h (bien que rien n'empêche en principe)
0
Merci beaucoup ! ça marche impec'
0