1.2.21. $F : Дальний или ближний вызов функций

На верх  Назад  Вперёд

Эта директива распознаётся для совместимости с Turbo Pascal. Для 32-разрядных и 64-разрядных программных моделей концепция ближних и дальних вызовов не имеет значения, поэтому директива игнорируется. Предупреждение выводится на экран как напоминание.

Например, следующий кусок кода:

{$F+}
Procedure TestProc;
begin
  Writeln ('Hello From TestProc');
end;
begin
  testProc
end.

Генерируется в следующий выход компилятора:

malpertuus: >pp -vw testf
Compiler: ppc386
Units are searched in: /home/michael;/usr/bin/;/usr/lib/ppc/0.9.1/linuxunits
Target OS: Linux
Compiling testf.pp
testf.pp(1) Warning: illegal compiler switch
7739 kB free
Calling assembler…
Assembled…
Calling linker…
12 lines compiled,
1.00000000000000E+0000

Здесь можно видеть, что уровень «многословности» сообщений компилятора был установлен (опция -vw) для отображения предупреждений.

Когда функция объявляется как Far (это имеет такой же эффект, как помещение функции между директивами {$F+} …{$F-}), компилятор также генерирует предупреждение:

testf.pp(3) Warning: FAR ignored

То же справедливо и для процедур, объявленных как Near. В этом случае отобразится предупреждение:

testf.pp(3) Warning: NEAR ignored