TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

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

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

Требование использования дальнего типа вызовов 

             Как уже упоминалось ранее,  при любом обращении к оверлейной
        процедуре  или функции из другого модуля вы должны обеспечить для
        всех активных процедур и функций вызовы типа FAR (дальний тип вы-
        зова).

             Это можно  хорошо  проиллюстрировать  на  следующем примере.
        Предположим,  что OvrA представляет собой процедуру в  оверлейном
        модуле, а процедуры MainC и MainD - процедуры в основной програм-
        ме. Если основная программа вызывает MainC, которая вызывает про-
        цедуру MainB, которая в свою очередь обращается к процедуре OvrA,
        то во время обращения к процедуре OvrA процедуры  MainC  и  MainB
        являются активными (они еще не выполнили возврат управления), по-
        этому необходимо использовать для них дальний тип вызова. Описан-
        ные в основной программе, процедуры MainC и MainB в обычной ситу-
        ации используют ближний тип вызовов (NEAR).  С помощью  директивы
        компилятора {$F+} необходимо задать дальний тип вызовов.

             Самый легкий  способ удовлетворения требования использования
        дальнего типа вызовов состоит  в  размещении  в  начале  основной
        программы и в начале каждого модуля директивы {$F+}. Альтернатив-
        ный способ состоит в изменении принятой по умолчанию установки $F
        на {$F+}  с помощью директивы командной строки /$F+ или с помощью
        параметра Force Far Calls (Использовать дальний тип вызова) в ди-
        алоговом  меню  Options│Compiler (Параметры│Компилятор) среды IDE
        интерактивного компилятора. По сравнению со смешанным использова-
        нием вызовов ближнего и дальнего типа использование вызовов толь-
        ко типа FAR не приводит к особенно большим дополнительным  затра-
        там памяти:  для этого требуется одно дополнительное слово прост-
        ранства стека на активную процедуру и один дополнительный байт на
        каждый вызов.

Содержание

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz