include multiples

include multiples - C++ - Programmation

Marsh Posté le 17-03-2003 à 18:03:00    

bon, je vais encore passer pour un newb avec mes questions a la con mais j'en suis un, donc...
 
Voila, je suis sous VC++ et j'ai un .h qui me definit une tripotée de structures et pointeurs. J'ai plusieurs fichiers .c qui doivent travailler sur ces structures et pointeurs, donc je mets #include "struct_def.h" dans chacun. Le problème, c'est que lorsque j'inclus ces fichiers dans le fichier contenant le main(), la compilation plante en me disant "error C2011: 't_etage' : 'struct' type redefinition"
 
L'erreur est logique puisque j'inclus plusieurs fois mon fichier de def de types. Comment contourner ça, puisque je suis obligé d'inclure mes types dans les fichiers secondaires ? (et oui, je veux garder tous ces fichiers secondaires)


---------------
©2008 Bleuarff Corp.
Reply

Marsh Posté le 17-03-2003 à 18:03:00   

Reply

Marsh Posté le 17-03-2003 à 18:08:55    

rajoute ceci au début de chaque header :
 
#ifndef MON_FICHIER_H
#define MON_FICHIER_H
 
// le contenu de ton fichier
 
#endif
 
ça évitera d'inclure un fichier déja inclus


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 17-03-2003 à 18:09:59    

Dans ton .h
 

Code :
  1. #ifndef __mon_fichier_h__
  2. #define __mon_fichier_h__
  3. le contenu de ton fichier.
  4. #endif


 
J'ai était un peu long ;)


Message édité par elrond le 17-03-2003 à 18:10:44
Reply

Marsh Posté le 17-03-2003 à 18:16:09    

merci, ça marche nickel !


---------------
©2008 Bleuarff Corp.
Reply

Marsh Posté le 17-03-2003 à 18:16:42    

Tu inclus des fichiers .c dans un code source? Bizarre comme technique... :??:

Reply

Marsh Posté le 17-03-2003 à 18:27:46    

il est conseillé de décorer un peu plus que ça les ~define. pensez bien que vous n'etes pas le premier programmeur a faire un fichier qui s'appelle stack.h
 
communément, on ajoute au choix : son nom, le nom du projet, le nom de sa boite, la date.
 
tous les indentificateurs qui commencent pas __ sont réservés à l'implémentation, donc attention

Reply

Marsh Posté le 17-03-2003 à 18:44:04    

Alload a écrit :

Tu inclus des fichiers .c dans un code source? Bizarre comme technique... :??:


 
non, mais les .h qui correspondent au .c oui.


---------------
©2008 Bleuarff Corp.
Reply

Marsh Posté le 17-03-2003 à 19:41:59    

bleuarff a écrit :


 
non, mais les .h qui correspondent au .c oui.

Ah là je suis d'accord :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed