我想知道是怎么回事。
我看过this topic,我知道“类型的选择是由实现定义的”,但我很好奇如何得到1而不是4。
发布于 2012-07-02 03:12:29
C++11引入了一种方法来更改枚举的底层类型。
enum foo : char { ... };
enum class foo : char { ... };不过,在大多数情况下,使用默认的int可能会更好。
发布于 2013-02-07 11:16:56
在GCC上,你也可以使用‘space’属性来告诉编译器你更关心空格而不是单词对齐/访问速度:
enum foo { ... } __attribute__((packed));对于其他编译器也有类似的提示。
(当试图避免编译器或集成开发环境还不支持的任何C++11特性时,这很有用。)
https://stackoverflow.com/questions/11284885
复制相似问题