Variables Globales, statiques, locales ?

mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012 - 13 juil. 2005 à 10:51
mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012 - 13 juil. 2005 à 18:22
G pu voir dans la plupart des tutos OpenGL que g lus, que les variables
devant servir dans des parties différentes de prog étaient déclarées de
manière globale. Ca ne pose aucun problème ? Je ne suis pas fort en
matière de fonctionnement assembleur, mais mes professeur de DUT m'ont
toujours certifié qu'il fallait mieux éviter l'emploi des variables
globale et qu'i lfallait mieux les remplacer par des variables
statiques paske sinon on pouvait rencontrer des "effets de bord" dus à
ces variables. Je ne dément pas ce qu'ils disent mais je proguais avant
et je me rappelle pas avoir eu de réel problème. Enfin, je pose la
question sur un forum de programmation donc je pense que certaines
personnes ici sont plus aptes que moi à répondre à ce genre de
questions.

<hr size="2" width="100%"> Qui ne tente rien...

Ne risque pas d'avoir grand chose !!!

<hr siz="">

6 réponses

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
13 juil. 2005 à 12:23
Quand on fait du graphique (autres traitements lourds idem) faut faire quelques entorses aux lois canon de la POO, par exemple on minimise le passage de paramètres (c'est couteux) au profit de variables globales. Ensuite sera au chef de projet de vérifier la rigueur du code pour éviter effets de bords et autres désagréments.

ciao...
BruNews, MVP VC++
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
13 juil. 2005 à 12:54
Les variables statiques, ce sont des variables globales, non? Globale dans le sens ou elles sont dans le segment data et pas dans la pile
0
mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012
13 juil. 2005 à 13:09
pour moi la seule différence qu'il y avait entre static et local ct
qu'elles avait la même adresse quelle que soit la fonction. Après,
savoir ou exactement elle est stockée, ????

<hr size="2" width="100%"> Qui ne tente rien...

Ne risque pas d'avoir grand chose !!!

<hr siz="">
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
13 juil. 2005 à 13:34
Je vois pas ce que tu veux dire la... et quand tu dis static, c'est dans quel sens du terme? Le static du C, ou celui des classes C++.
Pour moi le static du C, c'est pour dire qu'une variable globale n'est accessible que dans la fonction ou elle est déclarée (on peut donc considérer que c'est une var locale, mais sa durée de vie est celle d'une variable globale, elle n'est donc pas sur la pile (impossible de savoir à tout moment ou elle serait dans la pile))
0

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

Posez votre question
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 19
13 juil. 2005 à 13:57
Bien entendu une 'static var' d'une fonction C n'est qu'une var globale que le langage C interdit de référencer ailleurs que dans la fonction mais en interne, ce n'est rien d' plus qu'une var globale du registre data. Un peu d'asm inline et on y accède sans problème.

ciao...
BruNews, MVP VC++
0
mondrone Messages postés 246 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 11 mars 2012
13 juil. 2005 à 18:22
oui, je sais, et d'ailleurs je ne vois vraiment pas kels genres de pb
peuvent engendrer les variables globales en fait. O fét,pour le moment
je prog uniquement en C, fo ke je me mette o C++ mais je devrais avoir
des cours dessus l'année prochaine et je prefere donc me concentrer sur
qqc ke je v pas voir en cours !

<hr size="2" width="100%"> Qui ne tente rien...

Ne risque pas d'avoir grand chose !!!

<hr siz="">
0