Перечисляемый тип (enum)

Позволяют в качестве значения использовать имена объектов(идентификаторы).

Например, для обозначения месяца можно вместо чисел 1, 2, 3 использовать имена (идентификаторы) jan, feb, mar.

Описание перечисляемого типа имеет вид:

typedef enum {a0, a1, …, an} E;

где E является описываемым перечисляемым типом.

Например,

Определяем новый тип day:

typedef enum {mon, tru, wed, thu, fri, sat, sun} day;

Определение переменной данным типом:

day f;

Использование данной переменной:

switch(f)

{

case mon: оператор 1;

case tru: оператор 2;

}

Для определения переменных вместо перечисляемых типов может использоваться описание метки перечисляемого типа.

Пример введения метки перечисляемого типа:

enum day {mon, tue, wed, thu, fri, sat, sun};

Метки перечисляемого типа аналогичны перечисляемым типам. Тогда, например, определение переменной d при помощи метки из ранее приведенного примера будет выглядеть так:

enum day d;

Перечисляемые переменные и константы в языке Си рассматриваются как переменные и константы типа int. Поэтому ошибочное использование перечисляемых значений может быть не обнаружено компилятором. Например, бессмысленное выражение типа mon+tue, в котором складывается два дня недели, не будет считаться ошибочным.

Также следует учесть, что отсутствует механизм генерирования элементов перечисляемого типа.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: