Параметры-константы

   
На этом шаге мы рассмотрим использование параметров-констант.

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

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

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

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


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

   

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

       
    Параметры-константы целесообразно использовать в тех случаях, когда требуется передавать структуры данных, занимающие большой размер памяти, но изменять исходные значения параметров с алгоритмической
    точки зрения недопустимо. В результате экономно используется оперативная память и одновременно гарантируется целостность исходных данных.

       
    На следующем шаге мы рассмотрим безтиповые параметры.



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

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