Типизированные константы можно сравнить с инициализированны-
ми переменными - переменными, значения которых определяются на
входе в их блок. В отличие от нетипизированных констант в описа-
нии типизированной константы указывается как тип, так и значение
константы.
описание типизированной константы
│ ┌─────────────┐ ┌───┐ ┌───┐ ┌───┐ ┌──────────────┐
└─>│идентификатор├─>│ : ├─>│тип├─>│ = ├─>│типизированная├──>
└─────────────┘ └───┘ └───┘ └───┘ │ константа │
└──────────────┘
типизированная ┌───────────────────┐
константа ──────┬───>│ константа ├───────>
│ └───────────────────┘ ^
│ ┌───────────────────┐ │
├───>│ адресная константа├───┤
│ └───────────────────┘ │
│ ┌───────────────────┐ │
├───>│ константа-массив ├───┤
│ └───────────────────┘ │
│ ┌──────────────────┐ │
├───>│ константа-запись ├────┤
│ └──────────────────┘ │
│ ┌───────────────────┐ │
├───>│ константа-объект ├───┤
│ └───────────────────┘ │
│ ┌───────────────────┐ │
└───>│константа-множество├───┘
└───────────────────┘
Типизированные константы можно использовать точно так же,
как переменные того же самого типа, и они указываются в левой
части оператора присваивания. Отметим, что типизированные конс-
танты инициализируются только один раз - в начале выполнения
программы. Таким образом, при каждом новом входе в процедуру или
функцию локально описанные типизированные константы заново не
инициализируются.
Кроме обычных выражений-констант значение типизированной
константы может задаваться с помощью адресного выражения-констан-
ты. Адресное выражение-константа - это выражение, предусматриваю-
щее получение адреса, смещения или сегмента глобальной перемен-
ной, типизированной константы, процедуры или функции. Адресные
выражения-константы не могут ссылаться на локальные переменные
(расположенные в стеке) или динамические переменные (размещенные
в динамически распределяемой области памяти), поскольку их адреса
нельзя вычислить на этапе компиляции.