Шаг 96.
Параметры-переменные
На этом шаге мы рассмотрим передачу параметров по ссылке.
При описании параметров-переменных, то есть в случае передачи параметров по ссылке, в заголовках процедур/функций перед идентификаторами таких параметров ставится ключевое слово var.
Заголовок процедуры с описанными параметрами-переменными имеет следующий вид:
procedure MyProc (var Par1, Par2 : Type1; var РаrЗ, Раr4 : Туре2);
Приведем упрощенную схему и описание механизма работы параметров-переменных:
Рис.1. Механизм передачи параметров
- При вызове процедуры/функции:
- выполняется выделение памяти только для локальных данных и для сохранения адресов фактических параметров-переменных;
- выполняется копирование адресов (но не значений!) фактических параметров в выделенную для них память;
- использовать в качестве фактических параметров константы запрещено.
- Во время работы процедуры/функции:
- никаких ограничений на использование параметров данного вида не накладывается;
- изменение значений формальных параметров, используя скопированные адреса, выполняется непосредственно
на ячейках памяти соответствующих фактических параметров.
- При окончании процедуры/функции:
- специального копирования результата не требуется, поскольку все
действия с формальными параметрами выполнялись непосредственно над ячейками памяти фактических параметров;
- память, выделенная для работы процедуры/функции, очищается.
В качестве фактического параметра-переменной могут использоваться переменные любых типов, включая файловые и опирающиеся на файловый, но зато использование констант не допускается.
На следующем шаге мы рассмотрим параметры-константы.
Предыдущий шаг
Содержание
Следующий шаг