2.4.1. Определение |
Вверх Предыдущий Следующий |
Кроме обычных конструкций Turbo Pascal для условной компиляции, компилятор Free Pascal также поддерживает расширенный механизм условной компиляции: конструкцию {$IF}, которая может быть использована для вычисления выражений времени компиляции. Прототип этой конструкции следующий: {$if expr} Содержание выражения ограничено тем, что может быть вычислено на этапе компиляции: •Константы (строки, числа) •Макросы •Переменные времени компиляции •Выражения Pascal с константами (только для режима Delphi ) Идентификаторы замещаются их значениями. Для макросов может произойти рекурсивная замена. Следующие логические операторы доступны: =, <>, >, <, >=, <=, AND, NOT, OR, IN Оператор IN проверяет наличие переменной времени компиляции в множестве. Доступны следующие функции:
В выражениях при вычислениях используются следующие правила: •Если все части выражения могут быть вычислены как логические (числа 1 и 0 представляют соответственно TRUE и FALSE), то выражение вычисляется с использованием логических операторов. •Если все части выражения могут быть вычислены как числовые, то выражение вычисляется с использование чисел. •Во всех других случаях выражение вычисляется, используя строки Если полное выражение имеет значение «0», то оно считает ложным и отклоняется. Иначе оно считается истинным и принимается. Это может иметь неожиданные последствия: {$if 0} Будет вычислено как False и отклонено, в то время как {$if 00} Будет вычислено как True. |