Параметры-переменные

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

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

   
Заголовок процедуры с описанными параметрами-переменными имеет следующий вид:

    procedure MyProc   (var Par1, Par2 :   Type1; var РаrЗ, Раr4 : Туре2);

   
Приведем упрощенную схему и описание механизма работы параметров-переменных:


Рис.1. Механизм передачи параметров

   

  • При вызове процедуры/функции:
  • выполняется выделение памяти только для локальных данных и для сохранения адресов фактических параметров-переменных;
  • выполняется копирование адресов (но не значений!) фактических параметров в выделенную для них память;
  • использовать в качестве фактических параметров константы запрещено.
  • Во время работы процедуры/функции:
  • никаких ограничений на использование параметров данного вида не накладывается;
  • изменение значений формальных параметров, используя скопированные адреса, выполняется непосредственно
    на ячейках памяти соответствующих фактических параметров.
  • При окончании процедуры/функции:
  • специального копирования результата не требуется, поскольку все
    действия с формальными параметрами выполнялись непосредственно над ячейками памяти фактических параметров;
  • память, выделенная для работы процедуры/функции, очищается.
  •    
    В качестве фактического параметра-переменной могут использоваться переменные любых типов, включая файловые и опирающиеся на файловый, но зато использование констант не допускается.

       
    На следующем шаге мы рассмотрим параметры-константы.



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

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