0988b24c

Определение перечислимых типов данных


Перечислимые типы данных представляют набор значений, кото- рые можно сохранять в определенном числе бит. Максимальное запи- санное значение определяет фактически необходимое число бит.

Приведем пример синтаксиса режима Ideal определения перечис- лимого типа данных:

ENUM имя [переменная_перечисления [, переменная_перечисления.]]

В режиме MASM вы можете использовать следующий синтаксис:

имя ENUM [переменная_перечисления [, переменная_перечисления.]]

Каждая "переменная_перечисления" имеет следующий синтаксис:

имя_переменной [=значение]

Когда вы присваиваете переменной "имя_переменной" конкретное значение, Турбо Ассемблер, если поле "значение" отсутствует, бу- дет присваивает ей значение, равное значению последней перемен- ной в списке, плюс единица. Значения не могут быть относительными или иметь опережающие ссылки. Переменные, создаваемые перечисли- мым типом (ENUM), представляют собой переопределяемые переменные с глобальной областью действия.

Предупреждение: Если вы используете в двух перечисли- мых типах данных одно и то же имя переменной, то первое значение переменной будет потеряно, и в результате возник- нет ошибка.

"Имя" - это имя типа данных ENUM. Для получения различной информации о присваивании значений переменным вы можете затем ис- пользовать это имя. О присваивании имен перечислимым типам данных в Турбо Ассемблере рассказывается в Главе 5.

Имена перечислимых типов данных можно также использовать для создания переменных и выделения памяти. Подробности см. в Главе 12.

Перечислимые типы данных являются переопределяемыми. В моду- ле вы можете несколько раз определить одно и то же имя перечисли- мого типа данных.

Кроме того, Турбо Ассемблер для определения перечислимого типа данных с большим числом переменных использует синтаксис, в котором указывается несколько строк. Начало такого определения отмечается символом {, а конец - символом }.

В режиме Ideal этот синтаксис имеет следующий вид:

ENUM имя [переменная_перечисления [, переменная_перечисления.]] {переменная_перечисления [,переменная_перечисления].] . . . {переменная_перечисления [,переменная_перечисления].] }

В режиме MASM используется следующий синтаксис:

имя ENUM [переменная_перечисления [, переменная_перечисления.]] {переменная_перечисления [,переменная_перечисления].] . . . {переменная_перечисления [,переменная_перечисления].] }

Например, все приведенные ниже перечислимые типы данных эк- вивалентны:

foo ENUM f1, f2, f3, f4 ; исходная версия

foo ENUM { ; версия из нескольких строк f1, f2, f3, f4 }

foo ENUM f1, f2, { f3, f4 } ; более компактная версия

Примечание: Турбо Ассемблер не распознает в определе- нии перечислимого типа данных из нескольких строк никаких псевдоопераций.



Содержание раздела