Четыре типа областей видимости

Содержание

В предыдущем (как, впрочем, и в последующем) изложении для объявления различий между идентификаторами, объявленными вне блока и внутри его, используются, термины глобальная переменная и локальная переменная. Однако в языке C предусмотрено более тонкое подразделение этих двух широких категорий. Стандарт С определяет четыре типа областей видимости[1] идентификаторов:



Тип области видимостиОбласть видимости
область действия — файл (имя, объявленное вне всех блоков и классов, можно использовать в транслируемом файле, содержащем это объявление; такие имена называются глобальными (global))Начинается в начале файла (единица трансляции) и кончается в конце файла. Такую область видимости имеют только идентификаторы, объявленные вне функции. Эти идентификаторы видимы в любом месте файла. Переменные с этой областью видимости являются глобальными)
область действия — блокНачинается открывающейся фигурной скобкой «{» блока и кончается с его закрытием скобкой «}«. Эту область видимости имеют также параметры функции. Переменные, имеющие такую область видимости, являются локальными в своем блоке
область действия — прототип функцииИдентификаторы, объявленные в прототипе функции, видимы внутри прототипа
область действия — функция (имена, объявленные в функции, могут быть использованы только в теле функции)Начинается открывающейся фигурной скобкой «{» функции и кончается с ее закрытием скобкой «}«. Такую область видимости имеют только метки. Метка используется оператором goto и должна находится внутри той же функции

В этой книге используется главным образом более общее подразделение на глобальные и локальные имена. Однако при необходимости более тонкого подразделения используются изложенные выше типы областей видимости.

----------
[1]Область видимости называется также контекстом или областью действия(имен.)