Описание процедуры, содержащее вместо блока операторов ди-
рективу forward, называется опережающим описанием. В каком-либо
месте после этого описания с помощью определяющего описания про-
цедура должна определяться. Определяющее описание - это описание,
в котором используется тот же идентификатор процедуры, но опущен
список формальных параметров и в которое включен блок операторов.
Описание forward и определяющее описание должны присутствовать в
одной и той же части описания процедуры и функции. Между ними мо-
гут описываться другие процедуры и функции, которые могут обра-
щаться к процедуре с опережающим описанием. Таким образом возмож-
на взаимная рекурсия.
Опережающее описание и определяющее описание представляют
собой полное описание процедуры. Процедура считается описанной с
помощью опережающего описания.
Примечание: В интерфейсной части модуля описания
forward не допускаются.
Приведем следующий пример опережающего описания:
procedure Walter(m,n : integer); forward;
procedure Clara(x,y : real);
begin
.
.
.
end;
procedure Walter;
begin
.
.
Clara(8.3, 2.4);
.
.
end;
Определяющее описание процедуры может быть внешним описани-
ем. Однако, оно не может быть внутренним описанием или другим
опережающим описанием. Определяющее описание также не может со-
держать директиву interrupt, описания assembler, near, far,
export, inline или другое описание forward.