Виды параметров и способы их передачи

   
На этом шаге мы рассмотрим способы передачи параметров.

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

   
Параметры, указываемые в заголовке процедуры/функции при ее описании, называются формальными параметрами.

   
Параметры, указываемые при вызове процедуры/функции, называются фактическими параметрами.

   
Корректность передачи параметров основывается на соответствии их количества и порядка перечисления в заголовке процедуры/функции и в операторе вызова, а также на совместимости по присваиванию между соответствующими фактическими и формальными параметрами.
Область видимости имен параметров такая же, как и локальных данных.

   
Многие процедуры имеют несколько.параметров. Задача программиста - убедиться, что параметры, которые он указывает при вызове (фактические параметры),
соответствуют по смыслу формальным параметрам. Компилятор может проверить только очевидные случаи - неправильное число параметров или несовместимость типов.

   
Рассмотрим классификацию способов передачи параметров, реализация которых возможна в языках программирования.

   
Замечание.
Обращаем внимание, что это общая классификация, а не классификация параметров в Object Pascal. Введенные для
классификации обозначения value, addr, in, out, inout, в Object Pascal не используются.

   
Параметры различаются:

  • По механизму передачи:
    • передача по значению (value);
    • передача по адресу (по ссылке) (addr);
  • По взаимодействию вызывающей и вызываемой процедур/функций:
    • только как входной параметр (in);
    • только как выходной параметр (out);
    • как входной, так и как выходной параметр (inout).
  •    
    Соответственно этим различиям теоретически возможны 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 - параметрами-константами.

       
    Две разновидности параметров (параметры-значения и параметры-переменные (ссылки)) являются стандартными для всех реализаций и версий языка Pascal.
    Третья разновидность (параметры-константы) была введена в последней версии предшественника языка Object Pascal - языке Borland Pascal 7.0.

       
    Со следующего шага мы начнем знакомиться с каждым из перечисленных способов передачи параметров.



    Вы можете оставить комментарий, или Трекбэк с вашего сайта.

    Оставить комментарий