next up previous contents index
suivant: Passage par référence monter: main précédent: Global contre local   Table des matières   Index


Portée

Tout nom doit être déclaré avant d'être utilisé. 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 global

int f(int x) {                  // x paramètre
  int n=2, x=10;                // n et x locaux

  return x+n ;
}

la déclaration locale de n masque la déclaration globale de n et la déclaration locale de x masque la déclaration du paramètre n : la valeur de f(0) est 12. Généralement, le compilateur émet un warning, ce qui signale à l'utilisateur la possibilité d'une erreur ; 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 (c'est même une définition), 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.


next up previous contents index
suivant: Passage par référence monter: main précédent: Global contre local   Table des matières   Index
R Lalement