Формальные и фактические параметры

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

Список фактических параметров подпрограммы должен совпадать по количеству и типам со списком формальных параметров. Список формальных параметров необязателен и может отсутствовать (в этом случае будут отсутствовать и фактические параметры). При описании и вызове подпрограммы без параметров круглые скобки не указываются. Следующие подряд однотипные параметры можно объединять в подчиненные списки. Другими словами, можно указывать их через запятую, а за последним параметром – их тип. Параметры подпрограммы могут быть значениями, переменными, константами.

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

Параметры-переменные указываются в описании подпрограммы после зарезервированного слова var. Действие зарезервированного слова var имеет силу до ближайшей точки с запятой. При вызове подпрограммы на месте параметра-переменной в качестве фактического параметра указывается переменная того же типа. При использовании параметра-переменной в подпрограмму передается сама переменная. Это позволяет вернуть в точку вызова подпрограммы измененные значения внешних переменных, которые были указаны в качестве параметров. Иными словами, изменения значений параметров-переменных в теле подпрограммы приводит также к изменению значений внешних переменных, указанных в качестве параметров при вызове подпрограммы.

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

Добавить комментарий