next up previous contents index
Next: Instruction conditionnelle if Up: À-côtés Previous: Instructions

      
Portée lexicale

Les programmes sont peuplés de noms servant à désigner diverses entités : paquets, types, membres et variables. La portée  d'une déclaration d'un nom est la région du programme dans laquelle ce nom est connu. Elle est déterminée par les règles suivantes :

Cette dernière clause concerne le masquage d'une déclaration par une autre : une déclaration d'un nom masque toute autre déclaration de ce nom qui lui est externe. Par exemple, dans

  int n = 3;                    // n est un champ
  
  int f(int x) {                // x paramètre
    int n=2;                    // n est une variable locale
    return x+n ;
  }

la déclaration locale de n masque la déclaration du champ n : la valeur de f(0) est 2. Le masquage d'un nom est à éviter.

On voit donc qu'un même nom peut apparaître à plusieurs endroits dans un programme : on parle des occurrences de ce nom. Il y a des occurrences d'utilisation et des occurrences de déclaration. Par exemple, dans

  int n = 4;

l'occurrence de n est une déclaration, tandis que dans

    return x+n;

l'occurrence de n est une utilisation. Quand on voit une occurrence d'utilisation d'un nom, il faut pouvoir remonter à sa déclaration.



R. Lalement
2000-10-23