Типизированные константы
Типизированные константы можно сравнить с инициализированны- ми переменными - переменными, значения которых определяются на входе в их блок. В отличие от нетипизированных констант в описа- нии типизированной константы указывается как тип, так и значение константы.
описание типизированной константы ¦ -------------- ---- ---- ---- --------------- L->¦идентификатор+->¦ : +->¦тип+->¦ = +->¦типизированная+--> L-------------- L---- L---- L---- ¦ константа ¦ L---------------
типизированная -------------------- константа ------T--->¦ константа +-------> ¦ L-------------------- ^ ¦ -------------------- ¦ +--->¦ адресная константа+---+ ¦ L-------------------- ¦ ¦ -------------------- ¦ +--->¦ константа-массив +---+ ¦ L-------------------- ¦ ¦ ------------------- ¦ +--->¦ константа-запись +----+ ¦ L------------------- ¦ ¦ -------------------- ¦ +--->¦ константа-объект +---+ ¦ L-------------------- ¦ ¦ -------------------- ¦ L--->¦константа-множество+---- L--------------------
Типизированные константы можно использовать точно так же, как переменные того же самого типа, и они указываются в левой части оператора присваивания. Отметим, что типизированные конс- танты инициализируются только один раз - в начале выполнения программы. Таким образом, при каждом новом входе в процедуру или функцию локально описанные типизированные константы заново не инициализируются.
Кроме обычных выражений-констант значение типизированной константы может задаваться с помощью адресного выражения-констан- ты. Адресное выражение-константа - это выражение, предусматриваю- щее получение адреса, смещения или сегмента глобальной перемен- ной, типизированной константы, процедуры или функции. Адресные выражения-константы не могут ссылаться на локальные переменные (расположенные в стеке) или динамические переменные (размещенные в динамически распределяемой области памяти), поскольку их адреса нельзя вычислить на этапе компиляции.