Partager via


Portée et visibilité

La « visibilité » d'un identificateur détermine les parties du programme où elle peut être référencée - sa « portée ». Un identificateur est visible (c. autrement dit., peut être utilisé) uniquement dans les parties d'un programme entouré par sa « portée », qui peut être limitée (par ordre d'augmenter le restrictiveness) au fichier, s'exécute, se bloque, ou le prototype de fonction dans lequel elle apparaît.La portée d'un identificateur est la partie du programme où le nom peut être utilisé.Cela est parfois appelé « portée lexicale ». Il existe quatre types de portée : fonction, fichier, bloc, et prototype de fonction.

Tous les ID à l'exception de les étiquettes possèdent leur portée déterminée par le niveau auquel la déclaration se produit.Les règles suivantes pour chaque type de portée régissent la visibilité des identificateurs à l'intérieur d'un programme :

  • portée du fichier
    Le spécificateur de déclarateur ou de type pour un identificateur à la portée du fichier apparaît en dehors de tout bloc ou une liste de paramètres et est accessible à partir de tout emplacement dans l'unité de traduction après sa déclaration.Les noms d'identificateurs avec la portée du fichier sont souvent appelés « globaux » ou « externes. » La portée d'un identificateur global commence au point de sa définition ou déclaration et se termine à la fin de l'unité de traduction.

  • Portée de la fonction
    Un nom est le seul type d'identificateur qui a une portée de la fonction.un nom est déclaré implicitement par son utilisation dans une instruction.Les noms d'étiquettes doivent être uniques dans une fonction.(Pour plus d'informations sur les noms et les noms d'étiquettes, consultez les instructions goto et étiquetées.)

  • Portée de bloc
    Le spécificateur de déclarateur ou de type pour un identificateur à la portée de bloc apparaît à l'intérieur d'un bloc ou dans la liste des déclarations de paramètre formel dans une définition de fonction.Il est uniquement visible du point de sa déclaration ou définition à la fin de le bloc contenant sa déclaration ou définition.sa portée est limitée à ce bloc et à tous les blocs imbriqués dans ce bloc et se termine à l'accolade qui ferme le bloc associé.De tels ID sont parfois appelés « variables locales. »

  • Portée de prototype de fonction
    Le spécificateur de déclarateur ou de type pour un identificateur à la portée de prototype de fonction apparaît dans la liste des déclarations de paramètre dans un prototype de fonction (pas partie de la déclaration de fonction).Sa portée se termine à la fin de le déclarateur de fonction.

Les déclarations appropriées pour définir des variables visibles dans d'autres fichiers sources sont décrites dans classes de stockage.Toutefois, les variables et les fonctions déclarées au niveau externe avec le spécificateur de classe de stockage de statique sont visibles uniquement dans le fichier source dans lequel elles sont définies.Toutes les autres fonctions sont globalement visibles.

Voir aussi

Concepts

Durée de vie, portée, visibilité, et liaison