Перечисления enum — различия между версиями
Ulysses (обсуждение | вклад) |
Ulysses (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
Перечисление enum это тип, который может хранить набор именованных целочисленных значений, заданных пользователем. | Перечисление enum это тип, который может хранить набор именованных целочисленных значений, заданных пользователем. | ||
<source lang="cpp">enum {REGISTER, AUTO, BREAK};</source> | <source lang="cpp">enum {REGISTER, AUTO, BREAK};</source> | ||
− | определяет три целочисленных константы, называемые ''элементами перечисления'', и присваивает им значения. По умолчанию, элементам перечисления присваиваются значения начиная с нуля; значение для каждого следующего элемента увеличиваются на единицу. Таким образом, REGISTER == 0, AUTO == 1 и BREAK == 2. Перечислению можно присвоить имя. Например: | + | определяет три целочисленных константы, называемые ''элементами перечисления'', и присваивает им значения. Определение типа enum может находиться в cpp-файле на самом верхнем уровне (то есть снаружи от функций), а также в заголовочных файлах (чтобы согласованно использовать имена констант в разных cpp-файлах). |
+ | |||
+ | По умолчанию, элементам перечисления присваиваются значения начиная с нуля; значение для каждого следующего элемента увеличиваются на единицу. Таким образом, в примере выше REGISTER == 0, AUTO == 1 и BREAK == 2. Перечислению можно присвоить имя. Например: | ||
<source lang="cpp">enum keyword {REGISTER, AUTO, BREAK};</source> | <source lang="cpp">enum keyword {REGISTER, AUTO, BREAK};</source> | ||
Элементам перечисления можно задавать значения явно. Если задана только часть значений, то нумерация продолжается автоматически начиная с последнего указанного значения, например: | Элементам перечисления можно задавать значения явно. Если задана только часть значений, то нумерация продолжается автоматически начиная с последнего указанного значения, например: |
Версия 11:42, 23 сентября 2010
Перечисление enum это тип, который может хранить набор именованных целочисленных значений, заданных пользователем.
enum {REGISTER, AUTO, BREAK};
определяет три целочисленных константы, называемые элементами перечисления, и присваивает им значения. Определение типа enum может находиться в cpp-файле на самом верхнем уровне (то есть снаружи от функций), а также в заголовочных файлах (чтобы согласованно использовать имена констант в разных cpp-файлах).
По умолчанию, элементам перечисления присваиваются значения начиная с нуля; значение для каждого следующего элемента увеличиваются на единицу. Таким образом, в примере выше REGISTER == 0, AUTO == 1 и BREAK == 2. Перечислению можно присвоить имя. Например:
enum keyword {REGISTER, AUTO, BREAK};
Элементам перечисления можно задавать значения явно. Если задана только часть значений, то нумерация продолжается автоматически начиная с последнего указанного значения, например:
enum keyword {REGISTER, AUTO = 3, BREAK};
REGISTER == 0, AUTO == 3 и BREAK == 4.
После своего определения перечисление используется почти так же, как и целые типы. Можно объявлять переменные или параметры функций соответствующего типа (в нашем примере — типа keyword). Однако зачастую именами из типа перечисления пользуются как обычными целочисленными константами и сравнивают с ними переменные обычных целочисленных типов, например int.
Важно понимать, что перечисление не образуют области видимости (scope), потому имена в различных перечислениях должны отличаться друг от друга (и от других констант и имён функций). Значения внутри одного перечисления могут совпадать.
Обратите внимание, что для элементов перечислений, как и для всех константных значений, принято использовать имена в верхнем регистре.