ТОР 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, приписанное имени функции или внешней переменной в файле ограничивает область видимости (действия) имени данным файлом. Не нашли, что искали? Воспользуйтесь поиском:
|