Шаг 96.
Параметры-переменные

    На этом шаге мы рассмотрим передачу параметров по ссылке.

    При описании параметров-переменных, то есть в случае передачи параметров по ссылке, в заголовках процедур/функций перед идентификаторами таких параметров ставится ключевое слово var.

    Заголовок процедуры с описанными параметрами-переменными имеет следующий вид:

    procedure MyProc   (var Par1, Par2 :   Type1; var РаrЗ, Раr4 : Туре2);

    Приведем упрощенную схему и описание механизма работы параметров-переменных:


Рис.1. Механизм передачи параметров

   

  1. При вызове процедуры/функции:
    1. выполняется выделение памяти только для локальных данных и для сохранения адресов фактических параметров-переменных;
    2. выполняется копирование адресов (но не значений!) фактических параметров в выделенную для них память;
    3. использовать в качестве фактических параметров константы запрещено.
  2. Во время работы процедуры/функции:
    1. никаких ограничений на использование параметров данного вида не накладывается;
    2. изменение значений формальных параметров, используя скопированные адреса, выполняется непосредственно на ячейках памяти соответствующих фактических параметров.
  3. При окончании процедуры/функции:
    1. специального копирования результата не требуется, поскольку все действия с формальными параметрами выполнялись непосредственно над ячейками памяти фактических параметров;
    2. память, выделенная для работы процедуры/функции, очищается.

    В качестве фактического параметра-переменной могут использоваться переменные любых типов, включая файловые и опирающиеся на файловый, но зато использование констант не допускается.

    На следующем шаге мы рассмотрим параметры-константы.




Предыдущий шаг Содержание Следующий шаг