Bonjour
J'ai quelques headers et beaucoup d'inclusions. En fait, main.h inclut un header qui en inclut un autre ... et qui inclut main.h.
Est-ce cette "boucle" qui peut générer une erreur du type 'parse error' dans le main.h ?
Version imprimable
Bonjour
J'ai quelques headers et beaucoup d'inclusions. En fait, main.h inclut un header qui en inclut un autre ... et qui inclut main.h.
Est-ce cette "boucle" qui peut générer une erreur du type 'parse error' dans le main.h ?
Pas trop non ca correspond plus à une erreur d'oubli d'un ; derriere un struct {} ou alors une parenthése.
Il y a des techniques pour éviter les inclusions multiples #pragma once sous Visual C++ sinon faire un tour dans la FAQ
Code:
1
2
3
4
5
6
7 #ifndef MONHEADER_H_ #define MONHEADER_H_ /* code */ #endif /* guard */
Salut,
L'inclusion multiple de fichiers d'en-tête est relativement facile à éviter. Dans chaque fichier d'en-tête, il faut placer un garde contre les inclusions multiples. Voici comment je procède:
Pour tout savoir sur la manière d'organiser son développement, je te conseille la lecture suivante qui est excellente: http://emmanuel-delahaye.developpez....ganiser_sourceCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 /* Pour un fichier monheader.h */ /* Le nom du de la macro définie ci-dessous doit être unique. Je procède systématiquement de la même manière: H: C'est un fichier d'en-tête TC: C'est mes initiales MONHEADER: C'est le nom du fichier 2007: C'est l'année de création du fichier 01: C'est le mois 03: C'est le jour 175522: C'est l'heure i.e 17h55min22sec */ #ifndef H_TC_MONHEADER_20070103175522 #define H_TC_MONHEADER_20070103175522 /* Ici, tu places tes déclarations */ #endif /* guard H_TC_MONHEADER_20070103175522 */
En procédant de cette manière, il est peu probable que tu ais des inclusions multiples. Par ailleurs, je ne comprend pas l'intérêt d'inclure une fichier d'en-tête appelé main.h, vu que main.c n'exporte en principe aucune fonction...
Thierry
Autant pour moi, Skyrunner, tu as été plus rapide!
Thierry
J'avais deja mis des gardes contre les inclusions multiples.
Finalement j'ai enlevé un #include qui servait pas des masses et depuis ca marche bien.
Merci quand meme pour ces réponses