#include <iostream>
using namespace std;
enum class A : long long {
a1,
a2,
};
enum class B : short {
b1,
b2,
};
enum C {
c1,
c2,
};
int main() {
cout << sizeof(A) << endl; // 8
cout << sizeof(B) << endl; // 2
cout << sizeof(C) << endl; // 4 (int)
}
结论:普通的enum是通常是以int型存储(不同编译器实现有可能不同)。而enum class 可以指定存储类型。