Porté des variables

catamenia Messages postés 119 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 21 juillet 2009 - 12 avril 2005 à 15:02
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 12 avril 2005 à 23:36
bonjours,
Mon programme est composé d'un certain nombre de .cpp. Comment puis je créer une variable visible et accessible par tous les .cpp?

merci

4 réponses

ricky78 Messages postés 126 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 11 juillet 2006
12 avril 2005 à 15:28
bonjour


tu cree un fichier extern .h dans tes header


dedans tu déclare tes variables de la façon suivante (par exemple)





extern HANDLE hPort,hEvent;
extern BOOL nbaxe[];
extern unsigned char buf_parametre[];
extern int axe;


dans chacun de tes cpp tu ajoute

#include "extern.h"

dans UN seul tu redeclare tes variables sans le extern


HANDLE hPort,hEvent;
BOOL nbaxe[];
unsigned char buf_parametre[];
int axe;

cordialement



TOCHE
0
mezaya Messages postés 202 Date d'inscription dimanche 18 mai 2003 Statut Membre Dernière intervention 6 mars 2010
12 avril 2005 à 19:31
ou plus facilement du déclare une variable en static.



ex : static int i;



attention a ne pas la déclarer plusieurs fois par de multiple inclusion.

Voili,Voilou
0
bayeto Messages postés 224 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 18 octobre 2010
12 avril 2005 à 20:07
Euh pas static globale. Une variable static globale est privée pour le module .cpp donc invisible au linker, enfin si je me trompe pas.

Par contre une variable static d'une classe c'est plus élégant et même recommandé.

dans le .h
class myclass {
public:
static int myvar;
};

dans le .cpp
int myclass::myvar = 250;
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 avril 2005 à 23:36
dans un cpp:
int myvar;

dans les autres cpp qui doivent y accéder:
extern int myvar;

ciao...
BruNews, MVP VC++
0
Rejoignez-nous