Язык программирования C

Скачать в pdf «Язык программирования C»


■    Как инициализируются внешние переменные?


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


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


Область действия внешней переменной или функции распространяется от точки, в которой она объявлена, до конца компилируемого файла. Например, пусть main, sp, val, push и pop определены в одном файле, в порядке, показанном выше, т.е. main () { . . . }


int sp = 0; double val[MAXVAL];


void push(double f) { … }


double pop(void) { … }


Тогда переменные sp и val можно использовать в функциях push и pop, просто обращаясь по именам, — никаких дальнейших объявлений внутри функций не нужно. Однако эти переменные невидимы в функции main, как и собственно функции push и pop.


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


Важно понимать различие между объявлением внешней переменной и ее определением. Объявление сообщает, что переменная обладает определенными свойствами (в основном типом), а определение выделяет место в памяти для ее хранения. Если следующие строки фигурируют вне функций, то они являются определениями внешних переменных sp и val: int sp;

Скачать в pdf «Язык программирования C»