enum在内存中占用多少存储空间,为什么在使用enum类型的时候不用写上enum的名字呢,想struct一样调用?在网上搜索了一下,找到了想要的结论!
enum定义类似与下面这样
enum Color {
Red,
Gray,
Blue
};
用起来可能像这样:
Color color = Red;
switch(color) {
case Red:
........
case Gray:
........
case Blue:
........
}
在C++中,枚举类型中定义的常量,属于 定义枚举的作用域 ,而不属于这个枚举类型;
我们可以这样写:
Color color = ::Red;
却不能这样写:
Color color = Color::Red
关于枚举类型所占用的内存大小,在stackoverflow中有关于这样的一个帖子,个人认为解释的比较合理。
其中的一句解释是:之所以是4个字节是因为enum类型是作为一个int来存储的。