Руководство по языку B.Pascal 7

       

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


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

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

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


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

Содержание раздела