Оператор CALL

Предназначен для передачи управления в подпрограмму.

 

CALL <имя файла подпрограммы>{(<список фактических параметров>)}

 

Словом, определяющим оператор вызова подпрограммы, является слово CALL, вслед за которым указывается <имя файла подпрограммы> – строковое выражение или литерная строка, не ограниченная двойными кавычками, значение которой соответствует имени вызываемой подпрограммы. В имя файла может входить имя устройства и составное имя каталога, но не должно указываться расширение, т.к. запускаемая подпрограмма всегда находится в файле с расширением OBJ.

Вслед за <именем файла подпрограммы> указывается <список фактических параметров>, передаваемых в запускаемую подпрограмму. <Список фактических параметров> – последовательность фактических параметров, значения которых передаются в вызываемую подпрограмму. Каждый параметр может быть числовым или строковым выражением, или элементом массивов P, L, C, O, V. Недопустимыми среди фактических параметров являются лишь элементы массива контуров K. Число параметров в списке не ограничено; если параметров больше одного, то они разделяются запятыми.

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

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

 

MONITOR