cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 janvier 2014
-
8 janv. 2014 à 13:43
cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDerniè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)
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 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.
cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDerniè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