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 :
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.