каков размер данных типа enum в C ++?

Это тестовый вопрос на собеседовании C ++, а не домашнее задание.

#include <iostream>
using namespace std;
enum months_t { january, february, march, april, may, june, july, august, september,    
  october, november, december} y2k;

 int main ()
  {
    cout << "sizeof months_t is  " << sizeof(months_t) << endl;
    cout << "sizeof y2k is  " << sizeof(y2k) << endl;
    enum months_t1 { january, february, march, april, may, june, july, august,    
       september, october, november, december} y2k1;
    cout << "sizeof months_t1 is  " << sizeof(months_t1) << endl;
    cout << "sizeof y2k1 is  " << sizeof(y2k1) << endl;
 }

Вывод:

sizeof months_t равно 4
sizeofy2k is 4
sizeof months_t1 равно 4
sizeofy2k1 равно 4

Почему размер всех этих 4 байтов? Не 12 x 4 = 48 байтов?
Я знаю, что элементы объединения занимают одну и ту же ячейку памяти, но это перечисление.

62
задан Gabriel Staples 25 September 2017 в 05:17
поделиться