Энциклопедия Turbo Pascal. Главы 1-4 - Параметры-значения

ОГЛАВЛЕНИЕ

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

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

Значения будут помещаться в стек при передаче параметров следующих типов:
     - двоичного /булевского/;
     - символьного;
     - целого;
     - целого длинного;
     - целого короткого;
     - байта;
     - слова;
     - вещественного;
     - указателя;
     - перечисления.

Для двойных слов сначала в стек помещается старшая часть значения и затем младшая часть.

Массивы и записи,  размер которых превышает четыре байта,  в действительности не передаются функции. Передается адрес /сегмент и смещение/ переменной. Сначала в стек помещается сегмент и затем смещение.  /Массивы,  размер которых меньше пяти байт непосредственно помещаются в стек/.  Множества и строки тоже передаются с использованием указателей на действительные переменные. Поскольку для данных этих типов в функции передаются адреса, необходимо делать копии действительных данных,  чтобы изменения данных, произведенные внутри функции,  не повлияли на эти переменные вне функции.