Directives conditionnelles

Résolu
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 - 5 oct. 2004 à 17:50
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 5 oct. 2004 à 18:36
salut a tous.
je suis face a une erreur qui me semble bizzarre, autant j'ai fait une connerie enorme et je vais m'en rendre compte tt seul mais la ca fait une heure que ca me prend la tete.....
bon j'ai un header inclus ds deux fichiers cpp, mon fichier principal et un autre qui contient une fonction enorme (c'est pour ca qu'elle est mise dans un fichier a part).
dans mon .h sont déclarées cette fonction et un vector global.

je compile, et la message d'erreur au link: dans le main.obj, multiple declaration de mon vector, deja declaré dans autre.obj

bon je regarde mes directives, je vous les copies pour que vous me disiez si j'ai merdé tout connement mais je pense pas:

#ifndef __INITORC_H__
#define __INITORC_H__

//includes et declarations

#endif //__INITORC_H__

bon deja je capte pas, et la ou je capte encore moins, si je remplace mon #ifndef par un #if!defined ca me met une erreur de plus, il me dis une fois que dans autre.obj, mon vector est deja declaré dans main.obj, et une autre fois que dans main.obj, mon vector est deja declaré dans autre.obj.....la j'en perd mon C++............

merci d'avance pour vos reponses

6 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
5 oct. 2004 à 18:12
Salut,
On declare pas les variables dans les headers mais dans les fichiers cpp.
Donc tu déclares ta variable dans un cpp, et dans l'autre cpp tu redéclares ta variable en "extern".
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
5 oct. 2004 à 18:31
oki merci.
et si je veux qu'elle serve dans plus de 2 .cpp, je fais koi?

main.cpp: ma_var
autre.cpp: extern ma_var
autre2.cpp: extern ma_var

?????
3
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
5 oct. 2004 à 18:36
Salut,
Oui un extern par cpp.
Tu peux aussi déclarer "extern ma_var" directement dans le header, mais je sais pas si c'est tres propre de faire comme ca.
3
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
5 oct. 2004 à 18:26
oooooooooki merci je test ca de suite (je savais pas, merci bcp je reviens accepter la reponse des que j'ai testé).
donc dans autre.cpp je declare ma variable, et pour y accéder depuis mon main.cpp je la declare en extern (corrige moi si jai mal capté, mais bon en gros jai recopié ske tas ecrit lol)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
5 oct. 2004 à 18:29
Salut,
autre.cpp: TYPE mavariable;
main.cpp: extern TYPE mavariable;
ou inversement...
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
5 oct. 2004 à 18:36
extern dans tous les modules qui ont besoin d'y accéder, oui
0
Rejoignez-nous