13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

12<br />

ные, обрабатываемые внутри блока, <strong>на</strong>зывают локальными (local variable),<br />

личными или автоматическими. Память под них выделяется <strong>на</strong> время работы,<br />

а по завершении работы функции их з<strong>на</strong>чения так же автоматически стираются,<br />

освобождая место в памяти переменным других частей программы.<br />

В C++ разрешено совмещать определение коротких функций с их объявлением<br />

с помощью лексемы inline. Благодаря этому механизму, код функции<br />

автоматически встраивается в то место, откуда происходит ее вызов, и<br />

вызов происходит з<strong>на</strong>чительно быстрее.<br />

Если требуется сохранять з<strong>на</strong>чения локальных переменных между вызовами<br />

функций, их объявления с<strong>на</strong>бжают модификатором static. В момент<br />

объявления статическую переменную можно явно инициализировать. Если<br />

этого не сделать, то при первом вызове ей автоматически присваивается нулевое<br />

з<strong>на</strong>чение. При повторных вызовах выражение инициализации игнорируется.<br />

Модификатор register <strong>на</strong>правляет локальную переменную <strong>на</strong> сохранение<br />

в регистры процессора. А модификатор volatile явно указывает, что локаль<strong>на</strong>я<br />

перемен<strong>на</strong>я «изменчива», то есть может в любой момент поменять<br />

свое з<strong>на</strong>чение.<br />

Кроме локальных данных, в программах существуют глобальные переменные<br />

(global variable) и глобальные константы (global constant), доступные<br />

из разных частей программы. Они размещаются в разделе объявлений файла<br />

и помогают функциям обмениваться информацией, минуя параметры, но порой<br />

снижают <strong>на</strong>дежность программной системы и увеличивают размер памяти,<br />

занимаемой программой в ходе выполнения.<br />

Внешний модификатор extern информирует компилятор о существовании<br />

внешних данных, <strong>на</strong>ходящихся в другом файле кода программы. За<br />

внешними и глобальными данными память закрепляется постоянно <strong>на</strong> все<br />

время работы программы, а в ходе первого вызова они инициализируются<br />

нулем.<br />

Каждый вызов функции представляет собой запрос <strong>на</strong> совершение определенных<br />

действий. Он осуществляется в соответствии с объявленным<br />

прототипом и семантической организацией программы:<br />

имяФункции ([ списокАргументов ]);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!