枚举的大小

时间:2014-04-15 20:12:45

标签: c++ enumeration

枚举类型的大小是多少?

int main()
{
enum boolean{fl,tr};
int sbool = sizeof(boolean);
boolean a=fl,b=tr;
cout<<"size of Bool Enum: "<<sbool<<endl;
enum months{jan=1,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec};
int smon = sizeof(months);
cout<<"size of months enum: "<<smon<<endl;
}

我写了上面的代码,我得到sbool和smon为4.有人可以解释为什么吗?

1 个答案:

答案 0 :(得分:0)

实现定义了枚举的大小。通常它们的大小等于sizeof(int),因为在C枚举器中类型为int。虽然即使在C枚举中本身也有实现定义的兼容类型。来自C标准

  

每个枚举类型应与char(一个有符号整数)兼容   类型或无符号整数类型。类型的选择是   实现定义

在C ++中,枚举具有基础类型的大小。如果没有另外指定,您可以修复指定enum-base或使用具有基础类型int的范围枚举。

相关问题