Описание forward
Описание процедуры, содержащее вместо блока операторов ди- рективу 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.