Variable globale [Résolu]

Signaler
Messages postés
24
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
8 janvier 2014
-
Messages postés
24
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
8 janvier 2014
-
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

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
28
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...
Messages postés
14799
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
6 juin 2021
155
Bonsoir,

Pourquoi ne pas faire une fonction publique globale qui retourne la valeur de cette variable ?
Messages postés
24
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
8 janvier 2014

tu as probablement raison, je vais faire ça,
merci
Messages postés
24
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
8 janvier 2014

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
Messages postés
3840
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
121
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.
Messages postés
24
Date d'inscription
jeudi 19 février 2009
Statut
Membre
Dernière intervention
8 janvier 2014

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