Библиотека программиста

«Ни один ремесленник, который стремится к вершинам своей профессии, не примет негодных инструментов; и ни один производитель, который ценит качество работы, не будет упрашивать ремесленника принять их»

Главная страница > Язык Object Pascal > 21. Вызовы подпрограмм

21. Вызовы подпрограмм

Вызовы с помощью имен подпрограмм и процедурных переменных, использование уточняющих имен.

Фактические параметры.

При вызове подпрограммы надо учитывать следующие правила:

· фактические параметры должны быть совместимы с формальными по присваиванию;

· выражения, используемые для передачи параметров var и out, должны иметь в точности тот же тип, что и формальные параметры;

· для параметров var и out должны использоваться только выражения, которым могут быть присвоены значения;

· для нетипизированных формальных параметров фактические не могут быть числами или истинными константами;

· параметры со значениями по умолчанию можно опускать только подряд и справа налево.

procedure DoSomething(X: Real = 1.0; I: Integer = 0; S: string = '');

DoSomething();

DoSomething;

Конструктор открытых массивов.

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

Конструктор представляет собой последовательность выражений, разделенных запятыми и заключенных в квадратные скобки. Пример:

var I, J: Integer;

procedure Add(A: array of Integer);

. . .

Add([5, 7, I, I + J]);

Такая компактная запись эквивалентна следующей:

var Temp: array[0..3] of Integer;

Temp[0] := 5; Temp[1] := 7; Temp[2] := I; Temp[3] := I + J; Add(Temp);

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





<< Предыдущая статья
«20. Параметры подпрограмм»
Следующая статья >>
22. Введение в классы и объекты