1.1 Введение

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

Free Pascal поддерживает директивы компилятора в исходном файле: в основном это те же самые директивы, что и в компиляторах Turbo Pascal, Delphi и Pascal для операционных систем Макинтош. Некоторые директивы используются только для совместимости и не имеют какого-либо эффекта.

Директивы компиляции всегда пишутся в фигурных скобках:

{$DIRECTIVE [value]}

Не должны использоваться скобки (* *) или // для директив компиляции, также не могут использоваться обозначения С++.

То что директива пишется как комментарий означает, что это не инструкция Pascal. Это значит что если указать несуществующую директиву, то это не приведёт к ошибке, компилятор просто дает предупреждение о недопустимой/неизвестной директиве.

Имеются различия между глобальными и локальными директивами:

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

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

Некоторые директивы могут принимать только логические значения: знак «+» включает директиву, знак «-» отключает директиву. Такие директивы также называют переключателями. Многие переключатели также имеют короткую и длинную форму записи. В таких случаях приводятся обе формы записи (как короткая, так и длинная).

Для длинной формы записи знаки «+» и «-» могут быть заменены ключевыми словами ON и OFF соответственно.

Таким образом, запись {$I+} эквивалентна записи {$IOCHECKS ON} или {$IOCHECKS +}, а {$C-} эквивалентна записи {$ASSERTIONS OFF} или {$ASSERTIONS -}.

Длинные формы переключателей являются такими же, как и их аналоги в Delphi.