2.3. Переменные времени компиляции

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

В режиме MacPas могут быть определены переменные времени компиляции. Они отличаются от идентификаторов тем, что могут иметь значение, а в отличие от макросов их нельзя использовать для замещения участков исходного кода их значением. Поведение этих переменных совместимо с поведением таких переменных с популярными компиляторами Pascal для Macintosh.

Переменные времени компиляции объявляются подобным образом:

{$SETC ident:= expression}

Это так называемое выражение времени компиляции, которое вычисляется один раз в тот момент, когда директива {$SETC } обнаружена в исходном коде. Значение результата затем присваивается переменной времени компиляции.

Вторая директива {$SETC } для той же переменной перезаписывает предыдущее значение.

В отличие от макросов и идентификаторов, переменные времени компиляции, определённые в интерфейсной части модуля, являются экспортируемыми. Это означает, что их значения будут доступны в модулях, которые используют модуль где объявлена переменная. Для этого требуется, чтобы оба модуля компилировались в режиме macpas.

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

В режиме MacPas переменные времени компиляции всегда включены.