Процедурные типы

До сих пор процедуры и функции рассматривались как текстовые фрагменты программы, определяемые именами. Турбо-Паскаль позволяет вводить переменные специального вида, значениями которых могут служить подпрограммы. Таким образом, Турбо-Паскаль позволяет интерпретировать процедуры и функции как значения, которые можно присваивать переменным и передавать в качестве параметров, причем речь идет именно о последовательности вычислений, а не о значениях, полученных после выполнения подпрограмм.

Общее описание процедурного типа следующее:

Type <имя типа>=Function (<список параметров>):<тип>;

Type <имя типа>=Procedure (<список параметров>);

Механизм процедурных типов предоставляет удобные возможности при разработке программ, но необходимо соблюдать следующие правила.

1. Подпрограмма, присваиваемая процедурной переменной, должна быть оттранслирована в режиме дальнего типа вызова (см. пример ниже).

2. Подпрограмма не должна быть стандартной процедурой или функцией. Это ограничение легко обойти, заключив стандартную подпрограмму в оболочку подпрограммы пользователя.

3. Данные подпрограммы не могут быть вложенными в другие подпрограммы.

4. Такие подпрограммы не могут быть процедурами прерываний.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: