Операторы вызова процедур и процедур-функций

      Комментарии к записи Операторы вызова процедур и процедур-функций отключены

Группа операторов вызова процедур и процедур-функций объединяет операторы следующего назначения:

• объявления BASIC-процедур;

_™0• объявления процедур на языках С, Pascal, FORTRAN, Assembler;

• задания процедур и процедур-функций;

• вызова BASIC-процедур;

• вызова разноязыковых модулей на языках семейства Microsoft (С, PaScai, FORTRAN, Assembler);

• вызова программ на машинном языке;

• выполнения команд MS DOS.

Оператор объявления BASIC-процедур — DECLARE (BASIC)

Назначение: Объявляет ссылки к BASIC-процедурам и вызывает проверку типов аргументов.

Синтаксис:

DECLARE (FUNCTION | SUB] [([])]

Аргумент Описание

Имя процедуры; оно ограничено 40 символами. Имя процедуры-функции FUNCTION может сопровождаться маркером типа (%, , !, #, $) для возвращаемой величины

Список параметров используется при вызове процедуры, определяет только количество и тип аргументов

Оператор объявления процедур на языках семейства

Microsoft — DECLARE

Назначение: Объявляет вызываемые последовательности внешних процедур, написанных на других языках программирования семейства Microsoft.

Синтаксис 1:

DECLARE FUNCTION [CDECL] [ALIAS ]

[([])]

Синтаксис 2

DECLARE SUB [CDECL] [ALIAS ]

[([])]

Элемент Описание

FUNCTION Указывает, что внешняя процедура возвращает значение; может использоваться в составе арифметических выражений

SUB Указывает, что внешняя процедура вызывается аналогично BASIC-процедуре

Имя, используемое в BASIC-программе для вызова процедуры; длина до 40 символов; имя процедуры-функции может включать маркер типа (%, , !, #, $) для .возвращаемой величины.

CDECL Указывает, что процедура использует порядок размещения аргументов, свойственный языку С; ключевое слово CDECL указывает на передачу аргументов справа налево, а не слева направо, как принято в среде языка BASIC

ALIAS Указывает, что процедура имеет другое имя в .OBJ-файле или библиотеке; если отсутствует ключ ALIAS, то имя процедуры отображается строчными буквами, маркер типа удаляется, а в начале имени добавляется символ подчеркивания, и именно это имя используется при поиске библиотек и внешних файлов; если за ключомCDECL следует ключ ALIAS, то используется указанное альтернативное имя.

Синтаксис аргумента

[[BYVAL SEG]][AS ] (, [[BYVAL SEGl][AS ] ] …

Элемент Описание

BYVAL Указывает, что параметр передается значением, а не ссылкой; передача ссылкой принята по умолчанию; ключ можно применять только для числовых параметров типа INTEGER, LONG, SINGLE, DOUBLE; при использовании BYVAL текущий аргумент преобразуется к типу, указанному в операторе DECLARE, непосредственно перед передачей параметра

SEG Указывает, что параметр передается адресом сегмента

Имя, допустимое для переменных языка BASIC;

существенным является тип переменной; если переменная — массив, то в скобках можно указать его размерность (в частности, чтобы обеспечить совместимость с прежними версиями языка)

ASУказывает тип переменной: INTEGER, LONG, SINGLE, DOUBLE, STRING, ANY — или имя структуры; можно указывать также и маркер типа (%, , !, #, $) или принимать его по умолчанию;

при объявлении внешних процедур, написанных на других языках, можно указать тип ANY, и это приведет к тому, что проверка типа не выполняется; нельзя использовать тип ANY для аргумента, передаваемого значением

Если не используются ключи BYVAL и SEG, то аргументы передаются смещением.

ВЫЗОВ — ТАНЦЫ ПОД КАБЛУКОМ (2 сезон)