14.4.1 Параметры-значения

На верх  Назад  Вперёд

Параметры-значения объявлены следующим образом:


Параметры-значения

1404


Когда параметры объявлены как параметры-значения, то процедура получает копию параметров, когда проходит её вызов. Любые изменения этих параметров являются локальными внутри блока процедуры, и не распространяются обратно в вызывающий блок.

Когда надо вызвать процедуру с параметрами-значениями нужно присвоить (при вызове) параметры совместимых типов. Это означает, что типы могут точно не совпадать, но должны быть преобразованы в фактические параметры совместимых типов. Код преобразования вставляется самим компилятором.

Необходимо соблюдать осторожность при использовании параметров-значений: параметры-значений интенсивно используют стек, особенно если они больших размеров. Общий размер всех параметров в списке формальных параметров должен быть меньше 32K для портирования (для Intel размер ограничен 64К).

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

Для параметров простых типов (т.е. не структурированных типов), могут быть указаны значения по умолчанию (default). Здесь может быть нетипизированная константа. Если при вызове функции нет какого-то параметра, при вызове функции будет принято значение по умолчанию. Для динамических массивов или других типов, которые можно рассматривать как эквивалент указателя, значение по умолчанию всегда Nil.

Следующий пример выведет на экране 20:

program testp;

Const

MyConst = 20;

 

Procedure MyRealFunc(I : Integer = MyConst);

begin

Writeln('Функция получила: ',I);

end;

 

begin

MyRealFunc;

end.