Inclure une énumération (langage C)
Résolu
Flo
-
Flo -
Flo -
Bonjour,
J'ai créé un projet en C qui contient entre autres le header boolean.h :
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.
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.
A voir également:
- Inclure une énumération (langage C)
- Langage ascii - Guide
- Langage binaire - Guide
- Comment inclure une video dans un powerpoint - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
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
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)
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 }; #endifComme ç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)