Il existe en C quatre types de portées possibles pour les déclarations :
- -
- un identificateur déclaré à l'extérieur de toute
fonction, a une portée qui s'étend de son point de déclaration jusqu'à
la fin du source ;
- -
- un paramètre formel de fonction a une portée qui s'étend de son
point de déclaration jusqu'à la fin de l'instruction composée formant
le corps de la fonction ;
- -
- un identificateur déclaré dans une instruction
composée a une portée qui s'étend du point de déclaration jusqu'à la fin
de l'instruction composée ;
- -
- une étiquette d'instruction a une portée qui comprend tout
le corps de la fonction dans laquelle elle apparaît.
Exemple :
int i; /* déclaration à l'extérieur de toute fonction */
void proc1(int j) /* j paramètre de la procédure proc1 */
{
... /* instructions 1 */
k:
if (...)
{
int l; /* déclaration à l'intérieur d'une instruction composée */
... /* instructions 2 */
}
} /* fin de proc1 */
int func1() /* début de func1 */
{
... /* instructions 3 */
} /* fin de func1 */
Dans cet exemple,
i pourra être référencé par
instructions, instructions et
instructions,
j pourra être référencé par instructions et
instructions,
k pourra être référencé par
instructions et instructions,
l pourra être référencé par instructions.
Matthieu Moy
2017-02-08