begin process at 2012 05 30 05:10:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Les variables globales......


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Les variables globales......

mardi 21 août 2001 à 09:57:12 | Les variables globales......

netman

Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)

Bon je fait un petit programme et la je suis confronte a un pb .....

J'utilise plusieurs fiches (ss Borland C++ 5.0) et je veux que plusieurs d'entre elles puissent voir une variable.
Donc je me dit c bon c gagne je la declare dans le fichier source/entete dans public et c gagné ........

Mais ct sans compter sur le fait ... que ca marche pas en fait .....

Donc voila si qlq'uin pouvais m'expliquer comment declarer une variable global a toutes mes fiches pour regle mon pb (mleme si c pas conseiller d'avoir des variables globales je sais mais bon comme toutes les fiches tappent dedans c plus simple ......

Voila merci d'avance :)
mercredi 22 août 2001 à 04:10:30 | Re : Les variables globales......

NitRic

Qui à dit que ce n'était pas conseiller d'utiliser des variables global??? Voici un petit exemple ou plutôt ma méthode:

Je cré un fichier ressource.h et dans ce fichier j'écrit par exemple:

// Début du fichier
#ifndef RESSOURCE_HEADER // Si le fichier n'est pas déjà inclus
#define RESSOURCE_HEADER // On l'inclus

// Variables(Exemple)

const char Var_Global[] = "Mon fichier.txt";
const int Var_Global2 = 35;

char *Mon_Char;
unsigned int Mon_Int;

// Etc...

#endif // Fin du fichier

Et dans les autres fichier j'include ce fichier ou ce trouve mes var global, petit fonction, autres headers, etc...


NitRic


-------------------------------
Réponse au message :
-------------------------------

Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)

Bon je fait un petit programme et la je suis confronte a un pb .....

J'utilise plusieurs fiches (ss Borland C++ 5.0) et je veux que plusieurs d'entre elles puissent voir une variable.
Donc je me dit c bon c gagne je la declare dans le fichier source/entete dans public et c gagné ........

Mais ct sans compter sur le fait ... que ca marche pas en fait .....

Donc voila si qlq'uin pouvais m'expliquer comment declarer une variable global a toutes mes fiches pour regle mon pb (mleme si c pas conseiller d'avoir des variables globales je sais mais bon comme toutes les fiches tappent dedans c plus simple ......

Voila merci d'avance :)
mercredi 22 août 2001 à 10:35:19 | Re : Les variables globales......

Lu


Je n'utilise jamais de variable globales, donc je ne suis pas vraiment compétent à ce niveau, mais j'ai tout de même un doute :

Je suis d'accord pour déclarer la variable globale dans un fichier d'en tête, mais en revanche il ne faut pas les définir dans le .h ! Sinon, lors de la compilation, les différents modules auront chacun leur variable, mais ils ne partageront pas la même variable globale. D'ailleurs, je ne serais pas étonné si cela provoquait des erreurs lors de l'édition de liens.

A mon avis, dans le .h il faudrait plutôt mettre un truc du genre :

extern char * variable_globale;

Ainsi, on déclare la variable. Ensuite, dans un .c on la définit une fois et une seule :
char * variable_globale = NULL;

De plus, ta solution consistant à contruire les variables dans le .h (ce qui est très visible lorsque tu leur attribue une valeur initiale) devrait te mettre la puce à l'oreille, car cela signifie que la variable globale est construite autant de fois qu'il y a de modules utilisant le .h ! Difficile dans ces conditions d'avoir une seule et unique variable globale...

Je n'ai jamais utilisé ce mécanisme, donc il y a peut-être quelques erreurs dans ce que je dis, mais c'était pour exprimer mon doute au sujet de la solution proposée.

D'autre part, cela ne t'étonne pas de déclarer une variable constante ? ;o)



-------------------------------
Réponse au message :
-------------------------------

Qui à dit que ce n'était pas conseiller d'utiliser des variables global??? Voici un petit exemple ou plutôt ma méthode:

Je cré un fichier ressource.h et dans ce fichier j'écrit par exemple:

// Début du fichier
#ifndef RESSOURCE_HEADER // Si le fichier n'est pas déjà inclus
#define RESSOURCE_HEADER // On l'inclus

// Variables(Exemple)

const char Var_Global[] = "Mon fichier.txt";
const int Var_Global2 = 35;

char *Mon_Char;
unsigned int Mon_Int;

// Etc...

#endif // Fin du fichier

Et dans les autres fichier j'include ce fichier ou ce trouve mes var global, petit fonction, autres headers, etc...


NitRic


-------------------------------
Réponse au message :
-------------------------------

Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)

Bon je fait un petit programme et la je suis confronte a un pb .....

J'utilise plusieurs fiches (ss Borland C++ 5.0) et je veux que plusieurs d'entre elles puissent voir une variable.
Donc je me dit c bon c gagne je la declare dans le fichier source/entete dans public et c gagné ........

Mais ct sans compter sur le fait ... que ca marche pas en fait .....

Donc voila si qlq'uin pouvais m'expliquer comment declarer une variable global a toutes mes fiches pour regle mon pb (mleme si c pas conseiller d'avoir des variables globales je sais mais bon comme toutes les fiches tappent dedans c plus simple ......

Voila merci d'avance :)

mercredi 22 août 2001 à 16:06:22 | Re : Les variables globales......

NitRic

Pour ce qui est des constantes j'en est jamais utiliser, j'utilise #define Ma_Const valeur :|, mais pour le reste j'ai bien l'impression que tu as raison sur tout, désoler d'avoir donner une mauvaise réponse, j'y penserrais 2 fois avant de répondre la prochaine fois :), merci d'avoir corriger! :).


NitRic



-------------------------------
Réponse au message :
-------------------------------


Je n'utilise jamais de variable globales, donc je ne suis pas vraiment compétent à ce niveau, mais j'ai tout de même un doute :

Je suis d'accord pour déclarer la variable globale dans un fichier d'en tête, mais en revanche il ne faut pas les définir dans le .h ! Sinon, lors de la compilation, les différents modules auront chacun leur variable, mais ils ne partageront pas la même variable globale. D'ailleurs, je ne serais pas étonné si cela provoquait des erreurs lors de l'édition de liens.

A mon avis, dans le .h il faudrait plutôt mettre un truc du genre :

extern char * variable_globale;

Ainsi, on déclare la variable. Ensuite, dans un .c on la définit une fois et une seule :
char * variable_globale = NULL;

De plus, ta solution consistant à contruire les variables dans le .h (ce qui est très visible lorsque tu leur attribue une valeur initiale) devrait te mettre la puce à l'oreille, car cela signifie que la variable globale est construite autant de fois qu'il y a de modules utilisant le .h ! Difficile dans ces conditions d'avoir une seule et unique variable globale...

Je n'ai jamais utilisé ce mécanisme, donc il y a peut-être quelques erreurs dans ce que je dis, mais c'était pour exprimer mon doute au sujet de la solution proposée.

D'autre part, cela ne t'étonne pas de déclarer une variable constante ? ;o)



-------------------------------
Réponse au message :
-------------------------------

Qui à dit que ce n'était pas conseiller d'utiliser des variables global??? Voici un petit exemple ou plutôt ma méthode:

Je cré un fichier ressource.h et dans ce fichier j'écrit par exemple:

// Début du fichier
#ifndef RESSOURCE_HEADER // Si le fichier n'est pas déjà inclus
#define RESSOURCE_HEADER // On l'inclus

// Variables(Exemple)

const char Var_Global[] = "Mon fichier.txt";
const int Var_Global2 = 35;

char *Mon_Char;
unsigned int Mon_Int;

// Etc...

#endif // Fin du fichier

Et dans les autres fichier j'include ce fichier ou ce trouve mes var global, petit fonction, autres headers, etc...


NitRic


-------------------------------
Réponse au message :
-------------------------------

Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)

Bon je fait un petit programme et la je suis confronte a un pb .....

J'utilise plusieurs fiches (ss Borland C++ 5.0) et je veux que plusieurs d'entre elles puissent voir une variable.
Donc je me dit c bon c gagne je la declare dans le fichier source/entete dans public et c gagné ........

Mais ct sans compter sur le fait ... que ca marche pas en fait .....

Donc voila si qlq'uin pouvais m'expliquer comment declarer une variable global a toutes mes fiches pour regle mon pb (mleme si c pas conseiller d'avoir des variables globales je sais mais bon comme toutes les fiches tappent dedans c plus simple ......

Voila merci d'avance :)


mercredi 22 août 2001 à 17:21:40 | Re : Les variables globales......

Lu

Je trouve dommage d'utiliser des #define pour des constantes en c++, puique c'est un language qui fournit tous les éléments pour les éviter.

Les directives de précompilation devraient, précisément, être réservées aux tâches de précompilation.

En plus, l'utilisation de "vraies" constantes déclarées et définies permet de nombreuses vérifications par le compilateur.

Sans compter que les #define n'ont aucun mécanisme pour éviter les conflits de nommage.

Enfin, un #define ne permet pas vraiment de définir des constantes instances de classes autres que les types de base. Ainsi, le #define n'est pas forcément efficace puisque par exemple :
#define TOTO CToto(18,15,"toto")
fait appel au constructeur paramétré de CToto autant de fois que TOTO est utilisé.
Au contraire :
const CToto TOTO(18,15,"toto");
fait appel une seule fois au constructeur, indépendamment du nombre d'utilisations de TOTO.

-------------------------------
Réponse au message :
-------------------------------

Pour ce qui est des constantes j'en est jamais utiliser, j'utilise #define Ma_Const valeur :|, mais pour le reste j'ai bien l'impression que tu as raison sur tout, désoler d'avoir donner une mauvaise réponse, j'y penserrais 2 fois avant de répondre la prochaine fois :), merci d'avoir corriger! :).


NitRic



-------------------------------
Réponse au message :
-------------------------------


Je n'utilise jamais de variable globales, donc je ne suis pas vraiment compétent à ce niveau, mais j'ai tout de même un doute :

Je suis d'accord pour déclarer la variable globale dans un fichier d'en tête, mais en revanche il ne faut pas les définir dans le .h ! Sinon, lors de la compilation, les différents modules auront chacun leur variable, mais ils ne partageront pas la même variable globale. D'ailleurs, je ne serais pas étonné si cela provoquait des erreurs lors de l'édition de liens.

A mon avis, dans le .h il faudrait plutôt mettre un truc du genre :

extern char * variable_globale;

Ainsi, on déclare la variable. Ensuite, dans un .c on la définit une fois et une seule :
char * variable_globale = NULL;

De plus, ta solution consistant à contruire les variables dans le .h (ce qui est très visible lorsque tu leur attribue une valeur initiale) devrait te mettre la puce à l'oreille, car cela signifie que la variable globale est construite autant de fois qu'il y a de modules utilisant le .h ! Difficile dans ces conditions d'avoir une seule et unique variable globale...

Je n'ai jamais utilisé ce mécanisme, donc il y a peut-être quelques erreurs dans ce que je dis, mais c'était pour exprimer mon doute au sujet de la solution proposée.

D'autre part, cela ne t'étonne pas de déclarer une variable constante ? ;o)



-------------------------------
Réponse au message :
-------------------------------

Qui à dit que ce n'était pas conseiller d'utiliser des variables global??? Voici un petit exemple ou plutôt ma méthode:

Je cré un fichier ressource.h et dans ce fichier j'écrit par exemple:

// Début du fichier
#ifndef RESSOURCE_HEADER // Si le fichier n'est pas déjà inclus
#define RESSOURCE_HEADER // On l'inclus

// Variables(Exemple)

const char Var_Global[] = "Mon fichier.txt";
const int Var_Global2 = 35;

char *Mon_Char;
unsigned int Mon_Int;

// Etc...

#endif // Fin du fichier

Et dans les autres fichier j'include ce fichier ou ce trouve mes var global, petit fonction, autres headers, etc...


NitRic


-------------------------------
Réponse au message :
-------------------------------

Bon la j'ai un petit probleme (normal sinon je poserais pas de question ....)

Bon je fait un petit programme et la je suis confronte a un pb .....

J'utilise plusieurs fiches (ss Borland C++ 5.0) et je veux que plusieurs d'entre elles puissent voir une variable.
Donc je me dit c bon c gagne je la declare dans le fichier source/entete dans public et c gagné ........

Mais ct sans compter sur le fait ... que ca marche pas en fait .....

Donc voila si qlq'uin pouvais m'expliquer comment declarer une variable global a toutes mes fiches pour regle mon pb (mleme si c pas conseiller d'avoir des variables globales je sais mais bon comme toutes les fiches tappent dedans c plus simple ......

Voila merci d'avance :)





Cette discussion est classée dans : pb, variables, variable, fiches, globales


Répondre à ce message

Sujets en rapport avec ce message

pb avec les dll !!! [ par ToasTy62 ] bon g une kestion a poser ki me tracasse... arghqd on fé une dll, on pt y mettre des variables globales, ok.ms est-ce ces variables globales sont tjrs problème de variables globales répétées [ par KreIS ] Alors voilà, mon problème est tout simple : imaginez qu'il y a un header qui contient une varible globale et plusieurs .cpp qui l'inclusent.le problèm Pb avec variable char [ par enrageur ] voila j'utilise des variables de type char. je l'initialise de la maniere suivante :char tab[256];Mon probleme est que j'aimerais initialiser le table DLL et variables [ par CyberP ] Voilà je voudrais donner la possibilitée à une dll d'appeler une fonction de l'application mèreDonc j'ai créé une structure que j'appelle PLUGINSYNC ( variables globales [ par jihedo ] svp, qui peut me dire comment créer une variable globale dont le contenu peut être lue dans ttes les classes, par exemple le texte saisie dans un "edi onglets [ par mouloudh ] bonjour tout le monde! j'essaie de commencer en prog. visual c++. en ce moment j'ai un probleme. j'ai fait une appli graphique qui tourne bien. en pri Pb de variable globale [ par spirit_1999 ] Salut,Je programme avec visual c++ en MFC et g un pb de variable. Je voudrai savoir comment faire pour pouvoir afficher une variable, de type BYTE     pb de définition de variables [ par minet03 ] Coucou, j'ai fait un fichier variables.cpp où je met toutes mes variables dedans. J'inclue ce fichier dans tout mes autres fichiers car ils en ont tou Variables Globale sous C++ Builder [ par mamoute ] Bonjour à tous, Je suis en train d'essayer de réaliser un lecteur de newsgroup sous C++ Builder et je me heurte à un problème. En fait, mon programm PB Conversion de CString vers LPSTR [ par ben1964 ] j'ai une fonct. API Windows qui necessite un arg. de type LPSTR et la variable que j'ai est de type CString J'ai essayerça :LPSTR a;CString ma_variab


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,997 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales