Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Правила областей видимости имен




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

Область действия внешней переменной простирается от точки во входном файле, где она была описана, до конца этого файла. Если, на­пример, переменные val, sp и функции push(), рор() и clear() определены в одном файле в таком порядке:

 

int sp = 0;

double val[MAXVAL];

double push(double f){…}

double pop(){…}

clear(){…},

то переменные val и sp можно использовать в функциях push(), рор() и сlеаг(), обращаясь к ним просто по именам, никаких описаний не нужно.

С другой стороны, если на внешнюю переменную нужно ссылаться еще до ее определения или же она определена в другом входном файле, от­личном от того, где она сейчас используется, то тогда вступает в силу описание extern.

Важно понимать различие между описанием внешней переменной и ее определением. Описание декларирует свойства переменной: ее тип, раз­мер и т. д., а определение, кроме этого, вызывает выделение памяти. Если такие, скажем, строки:

int sp;

double val[МAXVAL);

появляются вне какой-либо функции, то они определяют внешние пере­менные sр и val, приводят к выделению памяти и, кроме того, служат описаниями для оставшейся части файла. С другой стороны, строки:

extern int sр;

extern double val[];

описывают для оставшейся части файла, что sр типа int, а val - массив значений с удвоенной точностью (его размер определяется где-либо еще), однако сами переменные не порождаются и память для них не выделяется.

Любая из внешних переменных во всех файлах, составляющих вход­ную программу, должна определяться лишь один раз, а другие файлы могут содержать, для обеспечения обращения к ней, описания ее как extern. (Описание extern может встречаться и в файле, содержащем определе­ние, обычно раньше определения). Инициация внешней переменной возможна только в ее определении. Размер массивов должен задаваться в определении, но допускается и в описании extern. Служебное слово static, приписанное имени функции или внешней переменной в файле ограничивает область видимости (действия) имени данным файлом.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных