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