Операционная система UNIX. Руководство программиста

       

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


Переменные и константы перечислимых типов имеют целочисленный тип.

спецификатор_перечислимого_типа: enum { список_перечисляемых }

enum идентификатор { список_перечисляемых }

enum идентификатор

список_перечисляемых: перечисляемое список_перечисляемых , перечисляемое

перечисляемое: идентификатор идентификатор = константное_выражение

Идентификаторы в списке_перечисляемых описываются как константы и могут указываться повсюду, где ожидается константа. Если не указано ни одного перечисляемого с =, идентификаторы в списке_перечисляемых принимают последовательные целые значения, начиная с 0; значения идентификаторов растут при просмотре описания слева направо. Перечисляемое с = придает идентификатору указанное значение; идущие за ним идентификаторы принимают последовательные целые значения, превосходящие данное.

Все имена перечисляемых в одной области видимости должны быть различными и отличаться от имен обычных переменных.

Роль идентификатора в спецификаторе_перечислимого_типа совершенно аналогична роли тега структуры в спецификаторе структуры; он именует конкретный перечислимый тип. Например, фрагмент программы

enum color {chartreuse, burgundy, claret=20, winedark}; . . . enum color *cp, col; . . . col = claret; cp = &col; . . . if (*cp == burgundy) ...

делает color тегом перечислимого типа, описывающего различные цвета, а затем объявляет cp как указатель на объект данного типа и col как объект данного типа. Множество возможных значений типа - {0, 1, 20, 21}.



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