На этом шаге мы рассмотрим способы передачи параметров.
При активизации процедуры/функции ей можно передавать параметры. При передаче необходимо следить, чтобы в операторе вызова были указаны все параметры, описанные в заголовке процедуры/функции.
Параметры, указываемые в заголовке процедуры/функции при ее описании, называются формальными параметрами.
Параметры, указываемые при вызове процедуры/функции, называются фактическими параметрами.
Корректность передачи параметров основывается на соответствии их количества и порядка перечисления в заголовке процедуры/функции и в операторе вызова, а также на совместимости по присваиванию между соответствующими фактическими и формальными параметрами. Область видимости имен параметров такая же, как и локальных данных.
Многие процедуры имеют несколько.параметров. Задача программиста - убедиться, что параметры, которые он указывает при вызове (фактические параметры), соответствуют по смыслу формальным параметрам. Компилятор может проверить только очевидные случаи - неправильное число параметров или несовместимость типов.
Рассмотрим классификацию способов передачи параметров, реализация которых возможна в языках программирования.
Параметры различаются:
Соответственно этим различиям теоретически возможны 6 способов передачи параметров:
1) value in; 2) value out; 3) value inout; 4) addr in; 5) addr out; 6) addr inout.
Несмотря на то, что возможны шесть способов передачи параметров в существующих языках программирования, как правило, используется не более двух-трех способов.
В Object Pascal реализованы первый (value in), четвертый (addr in) и шестой (addr inout) способы передачи параметров. Параметры вида value in называются параметрами-значениями, параметры addr inout - параметрами-переменными (ссылками), а параметры addr in - параметрами-константами.
Со следующего шага мы начнем знакомиться с каждым из перечисленных способов передачи параметров.