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