Внешние переменные

Внешние переменные

    Переменная, описанная вне функции, является внешней. Внешнюю переменную можно также описать в функции, которая использует ее, при помощи ключевого слова extern. Описания могут выглядеть примерно так:

int errupt;   /* Три переменные, описанные вне функции */

char coal;

double up;

main( )

{

extern int errupt;  /* объявлено, что 3 переменные */

extern char coal; /* являются внешними */

extern double up;

Группу extern-описаний можно совсем опустить, если исходные определения переменных появляются в том же файле и перед функцией, которая их использует. Включение ключевого слова extern позволяет функции использовать внешнюю переменную, даже если она определяется позже в этом или другом файле. (Оба файла, конечно, должны быть скомпилированы, связаны или собраны в одно и то же время.)

     Если слово extern не включено в описание внутри функции, то под этим именем создается новая автоматическая переменная. Вы можете пометить вторую переменную как "автоматическую" с помощью слова auto и тем самым показать, что это ваше намерение, а не оплошность. Три примера демонстрируют четыре возможных комбинация описаний:

/* Пример1 */

int hocus;

main( ) {

extern int hocus; /* hocus описана внешней */

...

}

magic( ) {

extern int hocus;

...

}

Здесь есть одна внешняя переменная hocus, и она известна обеим функциям main( ) и magic( ).

/* Пример2 */

int hocus ;

main( )

{

extern int hocus;   /* hocus описана внешней */

...

}

magic( )

{

/* hocus не описана совсем */

...

}

Снова есть одна внешняя переменная hocus, известная обеим функциям. На этот раз она известна функцииmagic( ) по умолчанию.

/* Пример3 */

int hocus;

main( )

{

int hocus;   /* hocus описана и

        является автоматической по умолчанию */

...

}

magic( )

 {

auto int hocus; /* hocus описана автоматической */

...

}

В этом примере созданы три разные переменные с одинаковым именем. Переменная hocusв функции main( )является автоматической по умолчанию и локальной для main( ), в функции magic( )она явно описана автоматической и известна только для magic( ). Внешняя переменная hocus неизвестна ни main( ), ни magic( ), но обычно известна любой другой функции в файле, которая не имеет своей собственной локальной переменной hocus.

     Эти примеры иллюстрируют область действия внешних переменных. Они существуют, пока работает программа, и так как эти переменные доступны любой функции, они не исчезнут, если какая-нибудь одна функция закончит свою работу.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

14.4 Внешние определения

Из книги C++ автора Хилл Мюррей

14.4 Внешние определения программа: внешнее_определение внешнее_определение программавнешнее_определение: определение_функции описаниеопределение_функции: спецификаторы_описания opt описатель_функции инициализатор_базового opt тело_функцииописатель_функции: описатель (


Внешние устройства

Из книги Музыкальный центр на компьютере автора Леонтьев Виталий Петрович

Внешние устройства Акустические системы В главе, посвященной звуковым платам, мы уже говорили, что для хорошего звука самой дорогой и продвинутой «звуковушки» недостаточно! Львиная доля ответственности за качество звучания лежит именно на акустических системах (в


Внешние ТВ-тюнеры

Из книги Компьютер + TV: телевидение на ПК автора Гольцман Виктор Иосифович

Внешние ТВ-тюнеры Внешние тюнеры характеризуются тем, что изготавливаются в отдельном корпусе, а не в виде платы, и выглядят более эстетично, чем набор микросхем, припаянных к плате. Тюнеры этого типа могут подключаться к компьютеру или напрямую к монитору.Все


Внешние программы

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Внешние программы ОО-системы состоят из классов, образованных компонентами (features), в частности, подпрограммами, содержащими инструкции. Что же является правильным уровнем модульности (granularity) для интегрирования внешнего программного продукта?Конструкция должна быть


У13.1 Внешние классы

Из книги 500 лучших программ для Windows автора Уваров Сергей Сергеевич

У13.1 Внешние классы При обсуждении интеграции внешнего не объектного ПО с объектной системой отмечалось, что компоненты являются тем уровнем, на котором нужно осуществлять интеграцию. Когда же речь идет об интеграции с ПО, созданным на другом объектном языке, уровнем


Внешние устройства

Из книги Принцип Касперского [Телохранитель Интернета] автора Дорофеев Владислав Юрьевич

Внешние устройства Уверен, всем читателям пригодятся утилиты, работающие с приводами оптических дисков, flash-накопителями, принтерами и другими периферийными устройствами. В данном разделе представлены небольшие, но очень полезные программы.Nero


Внешние базы

Из книги Справочник по Flash автора Коллектив авторов


loadVariables - Загружает в клип или фильм внешние переменные

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

loadVariables - Загружает в клип или фильм внешние переменные loadVariables(Глобальная функция)Загружает в клип или фильм внешние переменныеСинтаксис:loadVariables (url, target); loadVariables (url, target, method);Аргументы:Обычно переменные внутри фильмов определяются при помощи ActionScript. Однако посредством


Функции и переменные. Локальные переменные

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


Функции и переменные. Локальные переменные

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


Внешние статические переменные

Из книги Раскрутка: секреты эффективного продвижения сайтов автора Евдокимов Николай Семенович

Внешние статические переменные      Вы можете также описать статические переменные вне любой функции. Это создаст "внешнюю статическую" переменную. Разница между внешней переменной и внешней статической переменной заключается в области их действия. Обычная внешняя


Внешние факторы

Из книги Linux глазами хакера автора Флёнов Михаил Евгеньевич

Внешние факторы Внутренняя оптимизация сайта – вотчина его владельца или администратора. Неудивительно, что веб — мастера из числа – выразимся иносказательно – «моральных релятивистов» научились оперировать не совсем честными методами и выдавать порой


11.3. Внешние DNS-серверы

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

11.3. Внешние DNS-серверы Если в локальном файле /etc/hosts не найдено записи о нужном имени, то компьютер должен запросить эту информацию у DNS-сервера. Для этого нужно знать IP-адрес этого самого сервера. Как система его узнает? Из файла /etc/resolv.conf, который должен выглядеть примерно


Внешние ключи

Из книги HTML, XHTML и CSS на 100% автора Квинт Игорь

Внешние ключи Следующим ограничением, которое часто используется в базах данных InterBase, является ограничение внешнего ключа. Это очень мощное средство для поддержания ссылочной целостности в базе данных, которое позволяет не только контролировать наличие правильных


Внешние ссылки

Из книги Ноутбук [секреты эффективного использования] автора Пташинский Владимир

Внешние ссылки Внешними называют ссылки на объекты, расположенные вне текущей страницы. Это могут быть картинки, другие страницы сайта, мультимедийные приложения.Основой внешних ссылок является URL-адрес объекта, на который вы собираетесь сослаться.Для создания


Внешние повреждения

Из книги автора

Внешние повреждения Внешние повреждения – то, на что необходимо обратить внимание еще до того, как вы заплатите деньги. В первую очередь осмотрите корпус ноутбука на наличие трещин. По большому счету о подобных дефектах вам должны будут сказать сразу. Кроме того, если они