Перечисление - это набор именованных целочисленных значений констант (C 2018 6.2.5 16).
Константа перечисления имеет тип int
(C 2018 6.4.4.3 2).
Перечисляемый тип совместим с char
или целочисленным типом со знаком или без знака (C 2018 6.7.2.2 4). Выбор зависит от реализации, что означает, что это зависит от вашего компилятора C.
Таким образом, размер типа перечисления зависит от вашего компилятора C.
Например, в enum color { red, green, blue };
:
- Каждый из
red
, green
и blue
является константой перечисления. Это константа типа int
, а ее размер равен int
в вашей реализации на C.
- Тип перечисления
enum color
может быть char
, signed short
, unsigned int
или другими возможностями.