Variable globale

Résolu
cs_luckyalan Messages postés 24 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 8 janvier 2014 - 8 janv. 2014 à 13:43
cs_luckyalan Messages postés 24 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 8 janvier 2014 - 8 janv. 2014 à 20:38
Bonjour,
je sais que cette question paraîtra triviale, voire déplacée pour les avertis, mais je suis un débutant et je m'arrache les cheveux avec les pointeurs !
je voudrais que plusieurs fonctions de mon programme aient accès à la variable "int nbLignes" sans pour autant avoir besoin de la modifier, juste lire la valeur.
je ne souhaite pas passer cette variable dans l'appel à la fonction car je passe déjà plein de variables dans l'appel.
une solution serait que ma variable soit globale, mais on lit partout que c'est interdit, alors que faire ? je n'arrive pas à utiliser les pointeurs, j'aimerais une solution alternative
merci de votre indulgence pour le vieux débutant (59 ans)

6 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 janv. 2014 à 18:24
Salut,

si tu n'as pas de chef gourou au dessus de toi alors tu mets ton 'int' en global et tu envoies les tabous se faire voir ailleurs.

ciao...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
8 janv. 2014 à 18:29
Bonsoir,

Pourquoi ne pas faire une fonction publique globale qui retourne la valeur de cette variable ?
0
cs_luckyalan Messages postés 24 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 8 janvier 2014
8 janv. 2014 à 18:37
tu as probablement raison, je vais faire ça,
merci
0
cs_luckyalan Messages postés 24 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 8 janvier 2014
8 janv. 2014 à 18:42
bonsoir,
fonction publique globale en langage C ? je ne vois pas ce que tu veux dire, mais je vais faire comme suggères BruNews ;o))
merci à vous 2
0

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

Posez votre question
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
8 janv. 2014 à 20:12
Bonjour.

La variable gobale n'est pas interdite, mais est juste dégueulasse !
Sa présence signifie dans 99.99% des cas que le design est mauvais.

La passage par fonction est ce qu'il y a de mieux. Si tu as trop d'arguments dans celle-ci, ça peut vouloir dire deux choses:
- Tu as mal découpé ton code, et tes fonctions font plus de tâches qu'elles ne devraient (ils faut toujours découper son code en petites fonctions, chacune faisant une tout petite partie du travail).
- Si tu as effectivement beaucoup de chose à passer, alors une structure regroupant certains arguments devrait être passé.
C'est surtout là-dessus que doit se poser ton problème, plus que sur la nécessité d'utiliser une variable globale.

D'une manière générale, évite absolument les variables globales ! C'est source d'erreur, de problème potentiel de link (inter fichier), et surtout tu fais exploser la barrière de sécurité qu'est la "localité" (j'entends pas là, éviter au maximum d'exposer des variables en dehors du "scope" où elles sont censées être utilisé).

Si ton code n'est pas trop gros, tu peux me le poster en message personnel, et je pourrais peut être t'indiquer des pistes d'amélioration.
0
cs_luckyalan Messages postés 24 Date d'inscription jeudi 19 février 2009 Statut Membre Dernière intervention 8 janvier 2014
8 janv. 2014 à 20:38
merci pour cette réponse cptpingu.
comme tu me l'as suggéré, je t'ai envoyé une copie de mes 2 principaux fichiers pour que tu me fasses des suggestions constructives
cordialement
0
Rejoignez-nous