Variable globale (commune a plusieurs fichiers)

Variable globale (commune a plusieurs fichiers) - C++ - Programmation

Marsh Posté le 10-05-2004 à 16:42:00    

Bonjour,
 
depuis ce midi je cherche a créer une variable globale commune a plusieurs fichiers mais malheuresement je n'ai pas trouvé la solution. Je m'explique en vous donnant un exemple :
 
fichier: main.cpp

Code :
  1. #include <iostream.h>
  2. #include "fonction.cpp"
  3. int GLOBAL; // il est la le problème :)
  4. void main()
  5. {
  6.   test();
  7. }


 
fichier: fonction.cpp

Code :
  1. #include <iostream.h>
  2. void test()
  3. {
  4.   cout<<GLOBAL;
  5. }


 
Voila, ce programme ne marche pas evidement, mais c'etait pour vous montrer a peu pret ce que je veux faire. Certains me diront peut etre d'envoyer la valeur en parametre de la fonction test, mais a vrai dire, je cherche un autre moyen.. plus simple, et pour ne pas m'embeter avec un parametre e^n plus, mais si c le seul moyennn ;)
 
Voila, j'attends vos reponses, merci d'avance.


Message édité par mesta le 10-05-2004 à 16:43:02
Reply

Marsh Posté le 10-05-2004 à 16:42:00   

Reply

Marsh Posté le 10-05-2004 à 16:43:09    

fichier: fonction.cpp

Code :
  1. Code :
  2.   extern int GLOBAL;
  3.   void test()
  4.   {
  5.       cout<<GLOBAL;
  6.   }


Message édité par cricri_ le 10-05-2004 à 19:56:28
Reply

Marsh Posté le 10-05-2004 à 16:46:00    

daccord merci ;)
 

Reply

Marsh Posté le 10-05-2004 à 17:01:50    

extern int GLOBAL;
 
Ajouté: c'est *quoi* cet include d'un fichier .cpp !?


Message édité par djdie le 10-05-2004 à 17:02:59
Reply

Marsh Posté le 10-05-2004 à 18:10:43    

Oué sinon tu peux faire ça aussi :
 
dans ton .h (un "var_globale.h" par ex)
 

Code :
  1. extern TYPE nom_var_globale;


 
et puis dans un .cpp (un "var_globale.cpp" donc)

Code :
  1. TYPE nom_var_globale = VALEUR;


 
puis après si un fichier à besoin de cette variable globale, tu fais un #include "var_globale.h".
 
Parce que sinon, si tu ne fais qu'une déclaration dans un .cpp, je pense que tu aura des problème de compilation si ut veux utiliser cette variable globale dans plusieurs fichier.
 
Voilà, si je dis des conneries, que quelqu'un me corrige siou plé.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
Reply

Marsh Posté le 10-05-2004 à 19:57:01    

Oups ! désolé d'avoir oublié le int .. suis vraiment null moi ...

Reply

Marsh Posté le 10-05-2004 à 20:42:43    

Stochastik : C'est quoi un "jeu a somme nulle" ?  (cf ta signature)

Reply

Marsh Posté le 10-05-2004 à 21:00:51    

C'est une citation de Carmack qui dit qu'en fait la programmation c'est pas que pour gagnere des thunes sur le dos de la communauté. Car de toute façon la pluspart des programmes s'inspire qq part de cette communauté en y puisant (come par exemple dans ces forums, c'est un début).
Il disait ceci quand on lui demandait pourquoi il divulguait des parties de ces sources au publiques. Donc il faut savoir prendre mais donner aussi en programmation. Ce que tu prends pour apprendre faut quelque part que tu le redonne d'une certaine manière, soit en aidant ou comme ici en fournissant à la communauté une parties de tes trouvailles.  
Donc la somme nulle c'est ça : tout prendre pour soit et rien donnée en retour.
Voilà. J'espère que je suis resté compréhensible.
Sinon, cette citation est extraite de la préface du receuil de Mr Michael Abrash, livre (pavé) où vous retrouvez tous les articles de l'optimisateur fou de Carmack à l'époque Quake. Un très bon livre sur le C s'il en est (avec un peut d'ASM aussi... :)).
Bonne soirée tout le monde. La communauté quoi.


---------------
"La programmation n'est pas un jeu à somme nulle" - John Carmack
Reply

Sujets relatifs:

Leave a Replay

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