Différence entre variable locale et variable globale

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 11 Peut 2024
Anonim
Différence entre variable locale et variable globale - La Technologie
Différence entre variable locale et variable globale - La Technologie

Contenu


Comme nous l'avons vu précédemment, une variable est un nom, attribué à un emplacement de mémoire, et doit être déclaré avant son utilisation. En C, toutes les variables sont déclarées au début du programme. En C ++, les variables peuvent être déclarées à tout moment avant d'être utilisées dans les instructions.

Les variables sont 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 est qu'une variable locale est déclarée à l'intérieur d'un bloc de fonction. En revanche, la variable globale est déclarée en dehors des fonctions du programme.

Etudions d’autres différences entre une variable locale et une variable globale ainsi qu’un tableau de comparaison.

  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Avantages
  5. Désavantages
  6. Conclusion

Tableau de comparaison:

BASE DE COMPARAISON VARIABLE LOCALE GLOBAL VARIABLE
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.
Valeur
Une variable locale non initialisée entraîne le stockage de la valeur de mémoire.La variable globale non initialisée stocke zéro par défaut.
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.
Partage de donnéesNon fourniFacilité
La vieCréé 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.
Passage de paramètreNécessairement requisNon requis pour les variables globales.
Changements dans une valeur de variableToute modification impliquée dans une variable locale n'affecte pas les autres fonctions du programme.Les changements appliqués dans la variable globale d'une fonction reflètent les changements dans l'ensemble du programme.

Définition de variable locale

UNE variable locale est toujours déclaré 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 a quitté le bloc dans lequel elles ont été 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 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 ‘static’.

Définition de variable globale

UNE variable globale est déclaré 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.


Ils restent en place 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.

  1. Les variables locales sont appelées «locales» car elles ne sont connues que par les instructions écrites dans une fonction à l'intérieur de laquelle elles sont déclarées et non par aucune autre fonction présente en dehors de ce bloc de fonction. Dans le cas d'une variable globale, elles sont connues de chaque fonction présente dans un programme; ils sont donc appelés «globaux».
  2. 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 invité à conserver cette valeur à l’aide du modificateur ‘static’.
  3. 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.
  4. 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é.

Avantages

Variable locale

  • Le principal avantage d'une variable locale est qu'il n'y a pas de modification accidentelle des données. La variable est déclarée à l'intérieur d'un bloc et ce bloc de code utilise la variable et évite les effets secondaires indésirables.
  • La variable locale consomme de la mémoire pour une quantité limitée de la période, uniquement lorsque le bloc contenant la variable est exécuté.

Variable globale

  • Les variables globales sont très utiles lorsque vous utilisez plusieurs fonctions du programme manipulant les mêmes données.
  • Les modifications à appliquer à l’ensemble du programme seraient plus faciles grâce à la mise en œuvre d’une variable globale.
  • Nous pouvons accéder de n'importe où ou par n'importe quelle fonction aléatoire du programme.

Désavantages

Variable locale

  • La portée de la variable locale est restreinte.
  • Interdire le partage de données.
  • Ils ne peuvent pas conserver les données entre les appels, car des variables locales sont générées et supprimées à chaque entrée et sortie du bloc. Cependant, le modificateur static peut être utilisé pour conserver les valeurs.

Variable globale

  • L'utilisation d'un grand nombre de variables globales peut générer des erreurs de programme.
  • Le principal problème qu’elle provoque est la survenue accidentelle des modifications dues aux variables globales diffusées tout au long du programme.
  • Cela pourrait également augmenter la nécessité de procéder à une refactorisation du code, processus très long dans lequel le code du programme entier est restructuré.

Conclusion:

Les variables locales et globales sont toutes deux nécessaires et également nécessaires 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.