next up previous contents index
Next: Passage par référence Up: No Title Previous: Global contre local

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;

int f(int x) {
  int n = 2;

  return x+n ;
}

la déclaration de n à l'intérieur de f masque la déclaration globale de n : la valeur de f(2) est 4 et non 5. 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 de déclaration, tandis que dans

  return x+n;

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


next up previous contents index
Next: Passage par référence Up: No Title Previous: Global contre local
Jean-Philippe Chancelier
9/29/1998