ВУЗ:
Составители:
Рубрика:
105
значение переменной, ее имя следует заключить в круглые скобки. В этом
случае в процедуре будет создан дубликат области памяти для хранения та-
кой переменной, а ее исходное значение после возврата из процедуры всегда
останется прежним.
Второй формат отличается тем, что позволяет не указывать ключевое слов
CALL, однако при этом обязательно
должны быть опущены и скобки вокруг
элемента фактические_параметры, в противном случае такое обращение к
процедуре будет воспринято как имя массива с индексными скобками. Не-
смотря на некоторую экономию в записи, второй формат служит источником
трудно выявляемых синтаксических ошибок, поэтому им лучше не пользо-
ваться.
Система (компилирующая) QuickBASIC, кроме рассмотренного вызова
посредством
оператора CALL, поддерживает еще один вариант вызова: с по-
мощью оператора CALLS, который позволяет вызывать внешние (то есть
описанные в других модулях) процедуры, в том числе и написанные на дру-
гих языках и хранящиеся после компиляции в объектной форме.
Процедуры типа FUNCTION
Процедура-функция отличается от процедуры SUB только тем, что с ее
именем ассоциируется некоторое значение, которое принимает определенное
значение после вызова функции и возврата из нее. Поэтому имя функции
может использоваться в любом выражении так же, как и имя обычной пере-
менной: в момент вычисления такого выражения происходит вызов функции
и ее
имя замещается возвращаемым значением. Во всех остальных отноше-
ниях процедура-функция устроена подобно процедуре SUB.
Синтаксически тело процедуры-функции определяется с помощью опера-
тора FUNCTION ... END FUNCTION, который имеет следующий формат:
FUNCTION имя [(формальные_параметры)] [STATIC]
[блок_операторов]
имя = выражение
[блок_операторов]
[EXIT FUNCTION]
[блок_операторов]
END FUNCTION
Назначение всех компонентов такое же, что и операторе SUB. Су
щест-
венным отличием является то, что в теле процедуры-функции обязательно
должен присутствовать (в произвольном месте, определяемым алгоритмом
работы) оператор присваивания имя = выражение, который определяет то
значение, которые после возврата из функции будет ассоциироваться с ее
именем. Вместо оператора присваивания может быть другой аналогичный
Страницы
- « первая
- ‹ предыдущая
- …
- 103
- 104
- 105
- 106
- 107
- …
- следующая ›
- последняя »