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