Variable globale
Enprogrammationinformatique,unevariable globaleest unevariabledéclaréeà l'extérieur du corps de toutefonctionouclasse,et pouvant donc être utilisée n'importe où dans leprogramme. On parle également de variable deportéeglobale.
Exemple de variable globale en langageC++
[modifier|modifier le code]#include<iostream>
intglobal=3;// Une variable globale
voidChangeGlobal()
{
global=5;// Référence à la variable globale à l'intérieur d'une fonction
}
intmain()
{
std::cout<<global<<'\n';// Référence à la variable globale dans une autre fonction
ChangeGlobal();
std::cout<<global<<'\n';
}
La variable étant globale, il n'est pas nécessaire de la passer comme paramètre pour l'utiliser dans les fonctions. La variable globale appartient à toutes les fonctions du programme.
La sortie sera:
3 5
Avantages et inconvénients
[modifier|modifier le code]Avantages
[modifier|modifier le code]Les variables globales pouvant être utilisées partout dans un programme sans avoir été transmises préalablement en paramètres de fonction, leur utilisation peut simplifier la conception et l'écriture de programmes.
Inconvénients
[modifier|modifier le code]L'utilisation de ces variables rend plus difficile la compréhension d'un programme ainsi que sondébuggageet sa modification ultérieure.
Lors de la recherche d'erreurs de programmation, lorsqu'une variable globale contient une information erronée, il est plus difficile de trouver la source de l'erreur, car la variable a pu être modifiée dans n'importe quelle partie du programme.
Lors des modifications apportées à un programme, il est complexe de modifier le traitement d'une variable globale parce qu'il faut comprendre tout le programme pour savoir comment la variable était traitée dans le programme originel, étant donné que la variable peut être modifiée depuis n'importe quelle fonction. De plus, elles sont un vecteur defuite de mémoire.
Lors de l'écriture debibliothèques logicielles,les variables globales empêchent laréentrancesi elles sont mal utilisées. C'est pourquoi il est recommandé de ne pas les utiliser pour l'écriture de bibliothèques.
Recommandations
[modifier|modifier le code]Les inconvénients des variables globales étant plus grands que leurs avantages, il est déconseillé d'utiliser ce type de variables dans la conception de programmes, et de leur préférer l'utilisation devariables locales(ou desingletonsavecaccesseurssi l'aspect global est impératif).
Certains programmeurs ont recours à ces variables globales pour accélérer les premières phases du développement d'un programme. Ils en paient souvent le prix lorsque vient le temps de corriger leur programme ou de le modifier pour l'adapter aux nouveaux besoins de leur client.
Langages sans variables globales
[modifier|modifier le code]L'environnement de développementGambas(cloneGNUdeVisual Basic) n'admet pas de variables globales. Cependant, une variable quelconque déclaréePUBLICy devient accessible depuis tout le projet.
Leslangages fonctionnels purs,commeHaskell,n'ont pas de variables du tout, et donc n'ont pas de variables globales.