Cтраница 1
Типизированные константы, несмотря на такое неудачное название и несмотря на то, что они объявляются в разделе констант const, в действительности могут являться не константами, а переменными, инициализируемыми при их объявлении, т.е. получающими начальное значение. Типизированные константы могут использоваться для задания начальных значений локальным переменным, а при желании - и глобальным переменным. Подробнее об инициализации переменных см. в разд. [1]
Типизированные константы ( переменные со стартовым значением) могут быть и глобальными, и локальными, как любые другае переменные. Но даже если объявляется переменная со значением внутри процедуры, т.е. заведомо локальная, то ее значение будет размещено не в стеке, а в сегменте данных. Об этом подробнее см. разд. [2]
Типизированные константы из всех процедур располагаются в сегменте данных и, следовательно, их общий размер ограничен 64 К. [3]
Типизированная константа не может иметь файловый или процедурный тип. [4]
Поскольку типизированная константа фактически представляет собой переменную с константным значением, она не может заменять обычную константу. Например, она не может использоваться в объявлении других констант или типов. [5]
К структурированным типизированным константам относятся константы типа массивов, записей и множеств. Определение констант типизированного типа выполняется в разделе CONST после предварительного определения типа массивов в разделе TYPE. Определение константы состоит из имени константы, за которым после двоеточия записывается имя типа и далее через знак равенства - значение константы в виде множества констант, разделенных запятыми и заключенными в скобки. [6]
Используя подобные введенным выше типизированные константы, можно инициализировать поля других объектов. [7]
В состоянии А все переменные и типизированные константы, превышающие по размеру один байт, выравниваются по границе машинного слова ( адреса с четными значениями) В случае необходимости между переменными для достижения выравнивания по границе слова включаются дополнительные неиспользуемые байты. Ключ Л не влияет ни на переменные размером в байт, ни на поля структур или элементы массивов. [8]
Объявление глобальных переменных или типизированных констант ( см. разд. [9]
Статические глобальные переменные основного блока и все типизированные константы, включая локальные, располагаются в сегменте данных, который запоминается регистром DS процессора. [10]
Внутри кодов inline могут быть доступны значения глобальных переменных и типизированных констант ( они хранятся в сегменте DS), а также, если inline стоит внутри тела процедуры или функции, становятся доступными локальные переменные этих процедур и их переменные параметры. Подробно вопросы интерфейса с ассемблерными программами и работа с inline рассматривается в гл. Здесь же мы дадим один последний совет начинающим любителям машинных кодов: во избежание фатальных последствий запрещено модифицировать кодами оператора inline регистры процессора ВР, SP, SS и DS. [11]
Объявление Vector является недопустимым, поскольку Min и Max являются типизированными константами. [12]
Так же, как и в случае одномерных массивов, можно определять не непосредственно переменные типа многомерных массивов, а сначала определять соответствующий тип, а затем - переменные или типизированные константы этого типа. [13]
Типизированные константы, несмотря на такое неудачное название и несмотря на то, что они объявляются в разделе констант const, в действительности могут являться не константами, а переменными, инициализируемыми при их объявлении, т.е. получающими начальное значение. Типизированные константы могут использоваться для задания начальных значений локальным переменным, а при желании - и глобальным переменным. Подробнее об инициализации переменных см. в разд. [14]
В состоянии А - никаких действий по выравниванию не предпринимается. Переменные и типизированные константы независимо от их размера помещаются в этом случае просто по следующему доступному адресу. [15]