Область и " видимость "
"Видимость" идентификатора задает части программы, в которой оно может ссылаться - его "область". Идентификатор отображаются (т е может использоваться) только в частях программы включенной своей "область", которая может быть ограничена (в порядке возрастания restrictiveness) к файлу, функций, отключение или прототипом функции, в котором она отображается.Область идентификатора части программы, в которой имя может использоваться.Это иногда называется "лексической области." 4 Типа области: функция файл, и прототип функции.
Все идентификаторы, кроме метки имеют свои область, указанную уровня, на котором объявление происходит.Следующие правила для каждого типа области управляющие видимостью идентификаторов в рамках программы:
Область файла
Описатель декларатора или типа для идентификатора с областью файла появляется за пределами любого блока или списка параметров и доступными из любого размещения в перевода после объявления.Имена идентификаторов с областью файла часто называются "глобальным" или "external". Область глобального идентификатора начинается с точки зрения его определения или объявления и заканчивается в конце единицы измерения.Область функций
Метка единственный тип идентификатора, который имеет область действия функции.Метка объявлена явно его использованием в выписке.Имена меток должны быть уникальными внутри функции.(Дополнительные сведения о метках и именах метки см. в разделе Goto и заданные выписки.)Область действия блока
Описатель декларатора или типа для идентификатора с областью блока появляется в блоке или в списке объявлений формальных параметров в определении функции.Он является видимым только с момента его объявления и определения в конец блока, содержащего его объявление и определение.Ее область ограничена этим блоком и на все блоки вложены в этом блоке и заканчивается в фигурных скобках, которая закроет размещение блока.Такие идентификаторы иногда называются "локальными переменными."Область Функция-прототипа
Описатель декларатора или типа для идентификатора с областью функция-прототипа отображается внутри списка announcements параметра в прототипе функции (не части объявления функции).Завершает свою область действия в конце декларатора функции.
Соответствующие объявления для внесения переменные видимым в других исходных файлах описанных в Классы запоминающих устройств.Однако переменные и функции, объявленные на уровне с внешней Статический описатель хранени-класса является видимым только в пределах исходного файла, в котором они заданы.Все остальные функции глобально видимы.