Перечисления

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

Перечисление задает для каждого мнемонического названия в указываемом множестве свой индекс.

Перечисление может иметь следующее формальное описание:

 

enum имя_типа {список_значений} список_объявляемых_переменных;

enum имя_типа список_объявляемых_переменных;

enum (список_элемент=значение);

 

Перечислимый тип описывает множество, состоящее из элементов-констант, иногда называемых нумераторами или именованными константами.

Значение каждого нумератора определяется как значение типа int. По умолчанию первый нумератор определяется значением 0, второй - значением 1 и т.д. Для инициализации значений нумератора не с 0, а с другого целочисленного значения, следует присвоить это значение первому элементу списка значений перечислимого типа.

 

Например:

// Создание перечисления

enum eDay{sn, mn, ts, wd, th, fr, st} day1;

// переменная day1 будет принимать

// значения в диапазоне от 0 до 6

day1=st;

// day1 - переменная перечислимого типа

int i1=sn;

// i1 будет равно 0

day1= eDay(0);

// eDay(0) равно значению sn

enum(color1=255);

// Объявление перечисления, определяющего

// именованную целую константу color1

int icolor=color1;

enum eDay2{sn=1, mn, ts, wd, th, fr, st} day2;

// переменная day2 будет принимать

// значения в диапазоне от 1 до 7

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

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