Введение в язык Си++

         

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


Есть другой метод определения целых констант, который иногда более удобен, чем применение const. Например:

enum { ASM, AUTO, BREAK };

определяет три целых константы, называемы перечислителями, и присваивает им значения. Поскольку значения перечислителей по умолчанию присваиваются начиная с 0 в порядке возрастания, это эквивалентно записи:

const ASM = 0; const AUTO = 1; const BREAK = 2;

Перечисление может быть именованным. Например:

enum keyword { ASM, AUTO, BREAK };

Имя перечисления становится синонимом int, а не новым типом. Описание переменной keyword, а не просто int, может дать как программисту, так и компилятору подсказку о том, что использование преднамеренное. Например:

keyword key;

switch (key) { case ASM: // что-то делает break; case BREAK: // что-то делает break; }

побуждает компилятор выдать предупреждение, поскольку только два значения keyword из трех используются.

Можно также задавать значения перечислителей явно. Например:

enum int16 { sign=0100000, // знак most_significant=040000, // самый значимый least_significant=1 // наименее значимый };

Такие значения не обязательно должны быть различными, возрастающими или положительными.



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