Les variables sont ensuite classées en variables "locales" et "globales", qui constituent le sujet principal de notre discussion. Ici, la principale différence entre une variable locale et une variable globale réside dans le fait qu’une variable locale est déclarée à l’intérieur d’un bloc de fonction, la variable globale étant également déclarée en dehors des fonctions du programme.
Étudions quelques différences supplémentaires entre une variable locale et une variable globale, ainsi qu'un tableau de comparaison.
Tableau de comparaison:
Base de comparaison | Variable locale | Variable globale |
---|---|---|
Déclaration | Les variables sont déclarées dans une fonction. | Les variables sont déclarées en dehors de toute fonction. |
Portée | Dans une fonction, dans laquelle ils sont déclarés. | Tout au long du programme. |
Accès | Accessible uniquement par les instructions, à l'intérieur d'une fonction dans laquelle elles sont déclarées. | Accédé par n'importe quelle déclaration dans le programme entier. |
La vie | Créé lorsque le bloc de fonction est entré et détruit à la sortie. | Restez en vie pendant toute la durée d'exécution de votre programme. |
Espace de rangement | Les variables locales sont stockées dans la pile, sauf indication contraire. | Stocké sur un emplacement fixe décidé par un compilateur. |
Définition de variable locale
Une variable locale est toujours déclarée dans un bloc de fonction. En C, une variable locale est déclarée au début d'un bloc de code. En C ++, ils peuvent être déclarés n'importe où dans le bloc de code avant leur utilisation. Les variables locales ne sont accessibles que par les instructions écrites dans une fonction dans laquelle les variables locales sont déclarées. Ils sont sécurisés en ce sens qu'ils ne sont accessibles à aucune autre fonction du même programme.
Les variables locales existent jusqu'à ce que le bloc de la fonction soit en cours d'exécution, et sont donc détruites après l'exécution du bloc. Les variables locales perdent leur contenu dès que l'exécution quitte le bloc dans lequel elles sont déclarées.
La raison en est que les variables locales sont stockées dans la pile sauf si leur stockage spécial est spécifié. La pile est de nature dynamique et le changement d'emplacement de la mémoire explique pourquoi la variable locale ne conserve pas sa valeur dès que le bloc d'une fonction existe.
Remarque:
Cependant, il existe un moyen de conserver la valeur d'une variable locale en utilisant le modificateur 'statique'.
Définition de variable globale
Une variable globale est déclarée en dehors de toutes les fonctions présentes dans un programme. Contrairement aux variables locales, la variable globale est accessible à n’importe quelle fonction présente dans un programme. Les variables globales ne sont pas très fiables car leur valeur peut être modifiée par toute fonction présente dans le programme.
Les variables globales restent en vigueur jusqu'à l'exécution complète du programme. Les variables globales conservent leurs valeurs jusqu'à l'exécution du programme. La raison en est qu'ils sont stockés sur une région fixe de la mémoire, décidée par le compilateur.
Une variable globale est utile dans les situations où plusieurs fonctions accèdent aux mêmes données. L'utilisation d'un grand nombre de variables globales peut être problématique, car il peut y avoir des changements indésirables dans la valeur d'une variable globale.
Différence clé entre variable locale et variable globale.
- Les variables locales sont appelées 'locales' car elles ne sont connues que par les instructions écrites dans une fonction dans laquelle elles sont déclarées et non par aucune autre fonction présente en dehors de ce bloc de fonction. Dans le cas de variable globale, elles sont connues de toutes les fonctions présentes dans un programme; par conséquent, ils sont appelés «globaux».
- Les variables globales conservent leur valeur jusqu'à la phase d'exécution du programme, car elles sont stockées à un emplacement déterminé par le compilateur. Les variables locales sont stockées dans la pile. par conséquent, ils ne conservent pas leur valeur, car 'stack' est de nature dynamique, mais le compilateur peut être amené à conserver sa valeur à l'aide du modificateur 'static'.
- Si une variable globale et une variable locale sont déclarées avec le même nom, toutes les instructions d'un bloc de code dans lequel la variable locale est déclarée feront uniquement référence à une variable locale et n'auront aucun effet sur une variable globale.
- Une variable locale est détruite lorsque le contrôle du programme sort du bloc dans lequel la variable locale est déclarée. Cependant, une variable globale est détruite lorsque l'ensemble du programme est terminé.
Conclusion:
Les variables locales et globales sont également requises lors de l'écriture du programme. Toutefois, la déclaration d'un grand nombre de variables globales peut être problématique dans un programme volumineux, car cela peut entraîner des modifications non souhaitées d'une variable globale; et il deviendrait difficile d'identifier quelle partie d'un programme apportait ce changement. Par conséquent, il faut éviter de déclarer des variables globales inutiles.