Документация по Clarion

       

PROCEDURE (Объявить процедуру)


Метка PROCEDURE (список параметров) [Метка] Локальные данные CODE операторы [RETURN]

Список параметровНеобязательный список переменных, которые передают значения ПРОЦЕДУРЕ. Этот список определяет имя каждого параметра используемого в пределах ИСХОДНОГО кода процедуры. Каждый параметр отделяется запятой. Тип данных каждого параметра указан в прототипе процедуры в MAP- структуре.
Локальные данныеОбъявите Локальные Динамические данные, которые могут использоваться только в этой процедуре.
CODE Начало выполнимых операторов.
операторыВыполнимые инструкции программы.
RETURNЗавершить выполнение процедуры. Вернуться в точку, из которой процедура была вызвана.

Декларация ПРОЦЕДУРЫ начинает секцию исходного кода который может быть выполнен в ПРОГРАММЕ. Процедура вызывается обращением к ее метке (и указанием параметров, если есть в наличии) как к исполняемому оператору в секции кода ПРОГРАММЫ, ПРОЦЕДУРЫ, или ФУHКЦИИ. ПРОЦЕДУРА завершается и возвращается в точку вызова когда выполнен оператор RETURN. Неявное RETURN происходит в конце выполнимого кода. Конец выполнимого кода для ПРОЦЕДУРЫ определен как конец исходного файла или начала новой ФУНКЦИИ, ROUTINE, или другой ПРОЦЕДУРЫ.
Данные объявленные в пределах ПРОЦЕДУРЫ, между ключевыми словами PROCEDURE и CODE, являются "Локальными Динамическими данными" к которым может обращаться только данная ПРОЦЕДУРА (если они не переданы как параметр другой ПРОЦЕДУРЕ или ФУНКЦИИ). Эти данные кладутся на стек, память под них выделяется при входе в процедуру, и освобождается при ее завершении.
ПРОЦЕДУРА должна быть объявлена в MAP модуля-ЧЛЕHА или ПРОГРАММЫ. Если она объявлена в MAP ПРОГРАММЫ, то она доступна любой другой процедуре или функции в программе. Если же объявлена в MAP модуля-ЧЛЕHА, то процедура доступна только другим процедурам или функциям из этого модуля-ЧЛЕHА.
Пример:
PROGRAM !Пример кода программы
MAP
OpenFile(FILE) !Прототип процедуры с параметром


ShoTime !Прототип процедуры без параметра
.
CODE
OpenFile(FileOne) !Вызов процедуры для открытия файла
IDLE(ShoTime) !Вызывать ShoTime пока ACCEPT ждет ввода
: !Еще какие-то операторы
OpenFile PROCEDURE(AnyFile) !Открывает любой файл
CODE !Hачало секции кода
OPEN(AnyFile) !Открыть файл
IF ERRORCODE() = 2 !Если файл не найден
CREATE(AnyFile) ! создать его
. !конец условия IF
RETURN !Вернуться обратно
ShoTime PROCEDURE !Показывает врем
Time LONG !Локальная переменна
CODE !Hачало секции кода
Time = CLOCK() !получить системное врем
SHOW(1,1,Time,@T3) !Показать врем
RETURN !Вернуться обратно
См. Также: ,



Содержание раздела