Содержание | <<< | >>>

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

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

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

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

----------

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


Содержание | <<< | >>>