Même .h dans plusieurs .h : "error : redefinition of struct"
Résolu
Ilioo
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
Ilioo Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Ilioo Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je réalise en ce moment un projet de c, divisé en deux grosses parties. Je les ai donc séparées en deux .h : gerer.h et afficher.h
Dans mon main.c :
#include "gerer.h"
#include "afficher.h"
Le problème, c'est que mes deux parties utilisent les mêmes types, qui sont rangés dans types.h, donc dans les deux j'ai #include "types.h".
Et quand je compile, mon compilateur me dit :
error : redefinition of 'struct SListe'
J'ai bien compris que le fait de #include "types.h" deux fois donnait envie à mon compilateur de le compiler deux fois, ça se comprend. Mais je n'ai pas compris comment régler le problème, je n'ai que quelques mois de C derrière moi et niveau organisation des .h et des .c je suis paumée.
C'est pourquoi je viens vers vous pour vous poser cette question : que puis-je faire pour que ce soit bien organisé et que mon compilateur l'accepte ? :'(
Merci d'avance pour vos réponses et bonne journée.
(actuellement j'utilise Windows, mais je code sur Ubuntu)
Je réalise en ce moment un projet de c, divisé en deux grosses parties. Je les ai donc séparées en deux .h : gerer.h et afficher.h
Dans mon main.c :
#include "gerer.h"
#include "afficher.h"
Le problème, c'est que mes deux parties utilisent les mêmes types, qui sont rangés dans types.h, donc dans les deux j'ai #include "types.h".
Et quand je compile, mon compilateur me dit :
error : redefinition of 'struct SListe'
J'ai bien compris que le fait de #include "types.h" deux fois donnait envie à mon compilateur de le compiler deux fois, ça se comprend. Mais je n'ai pas compris comment régler le problème, je n'ai que quelques mois de C derrière moi et niveau organisation des .h et des .c je suis paumée.
C'est pourquoi je viens vers vous pour vous poser cette question : que puis-je faire pour que ce soit bien organisé et que mon compilateur l'accepte ? :'(
Merci d'avance pour vos réponses et bonne journée.
(actuellement j'utilise Windows, mais je code sur Ubuntu)
A voir également:
- Error: redefinition of
- Télécharger logiciel dvr h 264 gratuit - Télécharger - Sécurité
- Fichier h - Forum Programmation
- Convertisseur watt en km/h - Forum Matériel & Système
- Télécharger codec h 264 gratuit - Télécharger - Conversion & Codecs
- Train 1000 km/h - Guide
1 réponse
cf : https://gcc.gnu.org/onlinedocs/cpp/Conditionals.html
Vite fait :
Vite fait :
/*types.h*/ #ifndef _TYPES_H #define _TYPES_H /* Contenu actuel de ton fichier */ #endif /*_TYPES_H*/
Tu dis que tu as divisé ton projet en 2 dans des fichiers .h, normalement les fichiers header ne devrait contenir que des prototypes, tes fonctions devraient être définies dans des fichiers .c
Des détails ici : https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/15212-la-programmation-modulaire