bonjour a tous
je sais que l'utilisation de variables globales est deconseiller mais dans mon cas elles sont primordiales
ma question est la suivante:
comment declarer des variables globales de type pointeur et des tableaux
bonjour a tous
je sais que l'utilisation de variables globales est deconseiller mais dans mon cas elles sont primordiales
ma question est la suivante:
comment declarer des variables globales de type pointeur et des tableaux
salut, tu dois déclarer tes variables globales avec le mot clé extern
dans ton .h
et dans ton .c
Code : Sélectionner tout - Visualiser dans une fenêtre à part extern int gint;
Code : Sélectionner tout - Visualiser dans une fenêtre à part int gint=2;
Beurk. Des accesseurs et modificateurs c'est quand même déjà un peu mieux avec des variables globales au niveau de l'unité de compilation seulement.
merci de ta reponse
mais ma question porter sur les pointeur
est ce qu'on fait pareille
c'est a dire:
extern char *tab;
dans le .h
char *tab;
dans le .c
Tout à fait, on fait pareil ... Même si c'est pas génial du tout ...
Tu peux initialiser ta variable dans le .c :
Code : Sélectionner tout - Visualiser dans une fenêtre à part char* ma_variable = NULL;
pourquoi n'est-ce pas une bonne méthode ?Envoyé par Marco85
http://c.developpez.com/faq/c/?page=...TYPES_globales
http://c.developpez.com/faq/c/?page=..._globales_conf
Disons qu'il est des cas où on ne peut, à moins de contortions trop fortes, se passer de variables globales DANS UN FICHIER (mais cependant leur nombre doit être le plus restreint possbile).
Par contre, on peut quasi-toujours se passer de variables globales ENTRE fichiers... Par des accesseurs/modificateurs.
Les 2 seules utilisations que je connaisse/admette de ce type sont pour du debug temporaire et pour l'accès à des choses que je ne souhaite pas documenter (donc non déclarées dans un .h).
C'es évidemment possible (ce qui est montré avec tes liens), mais tant que faire se peut à éviter... (cela rend la lecture et la maintenance nettement plus compliquées).
C'est exactement ce que je voulais dire.
Merci d'avoir expliqué ce que je sous-entendais souviron34.
Partager