portée

C'est une notion de compilation (par opposition à la notion de durée de vie).

La portée d'une déclaration/définition d'entités (variable, constante, type, fonctions) est la zone de texte où la déclaration a un effet, c'est à dire où l'entité peut être utilisée (sauf phénomène de masquage).

La portée commence à l'endroit où l'entité est déclarée et se termine :

  • à la fin du fichier pour une entité globale, c'est à dire déclarée directement au niveau fichier
  • à la fin du bloc pour une entité locale à ce bloc.

Pour autoriser les fonctions récursives, on peut appeler la fonction dans le bloc de la fonction (pour être exact, la fonction est en cours de définition, mais sa déclaration a eu lieu - on a déjà donné son en-tête , sa signature).

int f (int  i) { /* L'en-tête de la fonction est connue */

int j ;

...

j = f(i) ; /* on peut appeller la fonction */

} /* La fonction est définie */

Attention au phénomène de masquage d'une déclaration/définition par une autre.

» Glossaire du langage C