Section courante

A propos

Section administrative du site

Portée des variables

La portée (scope) d'une variable correspond à la zone du programme dans laquelle cette variable est visible et accessible.

Autrement dit :

Une bonne gestion de la portée empêche les erreurs invisibles.

Pourquoi la portée est cruciale en programmation structurée

La programmation structurée cherche à :

La portée des variables permet de :

Les grands types de portée

Dans la programmation structurée, on distingue principalement :

Portée locale

Définition

Une variable locale est déclarée :

Elle n'est accessible que dans cette zone.

Exemple (C)

  1. void calculer() {
  2.     int resultat = 0; /* variable locale */
  3.     resultat += 10;
  4. }

Impossible d'accéder à resultat en dehors de calculer.

Exemple (Pascal)

  1. Procedure Calculer;
  2. Var
  3.  resultat:Integer;
  4. Begin
  5.  resultat:=10;
  6. End;

Avantages

Portée de bloc

Définition

Certaines variables sont visibles uniquement à l'intérieur d'un bloc conditionnel ou itératif.

Exemple (C)

  1. if(condition) {
  2.     int x = 5; /* portée limitée au bloc */
  3. }
  4. /* x n'existe plus ici */

Exemple (Pascal / Delphi)

  1. Var
  2.  x:Integer;
  3.  
  4. BEGIN
  5.   x := 5;
  6.   Writeln(x);
  7. END.
  8. { x n'existe plus ici }

Portée de fonction / procédure

Les paramètres d'une fonction ont une portée limitée à cette fonction.

  1. int addition(int a, int b) {
  2.     return a + b; /* a et b sont locaux */
  3. }

Portée globale

Définition

Une variable globale est déclarée :

Exemple (C)

  1. int compteurGlobal = 0;
  2.  
  3. void incrementer() {
  4.     compteurGlobal++;
  5. }

Problèmes des variables globales

Règle d'or

Utiliser les variables globales en dernier recours uniquement.

Portée de fichier / module

Dans certains langages (C), on peut limiter la visibilité au fichier :

  1. static int compteurFichier;

Masquage de variables (shadowing)

Définition

Une variable locale peut masquer une variable globale ou externe portant le même nom.

Exemple

  1. int x = 10;
  2.  
  3. void test() {
  4.     int x = 5; /* masque la variable globale */
  5.     printf("%d", x); /* affiche 5 */
  6. }

Source fréquente de bogues subtils.

Durée de vie vs portée

Concept Définition
Portée Où la variable est visible
Durée de vie Combien de temps elle existe en mémoire

Une variable peut :

Variables statiques

Exemple (C)

  1. void compteur() {
  2.     static int c = 0;
  3.     c++;
  4.     printf("%d\n", c);
  5. }

Bonnes pratiques essentielles

Portée et sécurité du code

Une mauvaise gestion de la portée peut entraîner :

Moins une variable est visible, plus le code est sûr.

Exemple comparatif

Mauvais exemple :

  1. int total;
  2.  
  3. void calculer() {
  4.     total = 100;
  5. }

Bon exemple :

  1. int calculer() {
  2.     int total = 100;
  3.     return total;
  4. }

Transition vers la POO

La portée des variables prépare à :

Résumé

Type Visibilité
Locale Bloc / fonction
Paramètre Fonction
Globale Programme
Fichier Module

Conclusion

La portée des variables est une règle fondamentale de la programmation structurée.

Elle garantit un code :

Règle d'or : limiter la portée au strict nécessaire.



Dernière mise à jour : Jeudi, le 1er janvier 2026