Previous Next Up Index Contents

10.2.1. Variables locales

Les variables déclarées dans un bloc d'instructions sont uniquement visibles à l'intérieur de ce bloc. On dit que ce sont des variables locales à ce bloc.

Exemple

La variable NOM est définie localement dans le bloc extérieur de la fonction HELLO. Ainsi, aucune autre fonction n'a accès à la variable NOM:

void HELLO(void);
{
 char NOM[20];
 printf("Introduisez votre nom : ");
 gets(NOM);
 printf("Bonjour %s !\n", NOM);
}

Exemple

La déclaration de la variable I se trouve à l'intérieur d'un bloc d'instructions conditionnel. Elle n'est pas visible à l'extérieur de ce bloc, ni même dans la fonction qui l'entoure.

if (N>0)
   {
    int I;
    for (I=0; I<N; I++)
      ...
   }

Attention !

Une variable déclarée à l'intérieur d'un bloc cache toutes les variables du même nom des blocs qui l'entourent.

Exemple

Dans la fonction suivante,

int FONCTION(int A);
{
 int X;
 ...
 X = 100;
 ...
 while (A>10)
   {
    double X;
    ...
    X *= A;
    ...
   }
}

la première instruction X=100 se rapporte à la variable du type int déclarée dans le bloc extérieur de la fonction; l'instruction X*=A agit sur la variable du type double déclarée dans la boucle while. A l'intérieur de la boucle, il est impossible d'accéder à la variable X du bloc extérieur.

Ce n'est pas du bon style d'utiliser des noms de variables qui cachent des variables déclarées dans des blocs extérieurs; ceci peut facilement mener à des malentendus et à des erreurs.

La plupart des programmes C ne profitent pas de la possibilité de déclarer des variables ou des fonctions à l'intérieur d'une boucle ou d'un bloc conditionnel. Dans la suite, nous allons faire toutes nos déclarations locales au début des fonctions.


Previous Next Up Index Contents

Feedback - Copyright © 1993,1996,1997 F.Faber