Variable globale [Résolu]

Signaler
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011
-
jul39dole
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011
-
Bonjour,

J'ai un programme écrit en C++, avec classe et objet. Malgré tout, j'aurai besoin d'une variable globale : un tableau dynamique (type float*). j'ai un fichier constante.h où je mets un peu toutes les choses globales. je voudrai mettre ma variable ici, et qu'elle puisse être accéder de partout. j'hésite entre des syntaxes du type :
extern float* tableau;
ou
static float* tableau;
....
Je sais pas trop comment m'y prendre : auriez-vous des suggestions ?

Cordialement.
Ju.

4 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut

Tu peux mettre ta variable dans ton fichier Variable.h en la declarant extern et dans ton main tu la declares comme les autres variables : float* tableau 

A+
Mon site internet : http://pistol.petesampras.free.fr
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011

Merci beaucoup ça marche nickel ;)
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009

Bonjour,

1) Dans le fichier constante.h ajouter la ligne extern float* tableau;. A la compilation de chaque fichier source qui inclura ce fichier d'entête, le compilateur saura que la variable tableau va être (ou non) utilisée dans ce fichier mais qu'il n'y trouvera pas sa déclaration ! par contre l'éditeur de liens (qui crée l'application en regroupant tous les morceaux !) la trouvera dans la table des références externes.

2) Dans un fichier source regroupant la déclaration des variables externes ou dans l'un des fichiers de l'application ajouter la déclaration de la variable : float* tableau[ = NULL]; mais surtout pas static float* tableau car tableau serait considérée comme une variable globale mais dans ce seul fichier source et ne serait donc pas placée dans la table des références externes. Elle serait partagée par toutes les fonctions se trouvant dans ce seul fichier source mais pas avec celles se trouvant dans les autres fichiers source. A la compilation de l'application il n'y aurait pas d'erreur dans les différents fichiers source puisque la variable tableau est supposée être externe mais à l'édition des liens il y aurait une erreur de référence non résolue puisque la déclaration de tableau n'existerait pas dans la table des références externes.

3) Utiliser tableau dans tous les fichiers source incluant constante.h.

Jean-François
Messages postés
117
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
21 janvier 2011

humm d'accord merci pour ces explications qui me font comprendre toutes les erreurs de compilation ou de link que j'ai pu avoir en tatonnant avec les mots clés!