14.4.2 Параметры-переменные

Вверх  Предыдущий  Следующий

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


Параметр переменная

1405


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

Параметры-переменные (var) (и константы (const)) могут быть и untyped (нетипизирована). В этом случае переменная не имеет типа, значит несовместима с другими типами. Тем не менее, здесь может быть использован оператор взятия адреса, в функцию может быть передан параметр, который сам untyped (нетипизированн). Если нетипизированная параметр используется для присвоения, или значение должно быть возложены на него, необходимо использовать напечатанный. Если для присвоения используется untyped (нетипизированный) параметр, для получения значения необходимо использовать приведение типов.

Переменная файлового типа должна быть передана как параметр-переменная.

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

Обратите внимание, что значения по умолчанию не поддерживаются для параметров-переменных. Это бессмысленно т.к. передаётся ссылка на переменную, а переменная инициализируется в вызывающем блоке.