2

我想知道怎么做。

我看过这个话题,我明白“类型的选择是实现定义的。”,但我很想知道如何得到 1 而不是 4。

4

2 回答 2

8

C++11 引入了一种更改枚举基础类型的方法。

enum foo : char { ... };
enum class foo : char { ... };

int不过,在大多数情况下,使用默认值可能会更好。

于 2012-07-01T19:12:29.290 回答
1

在 GCC 上,您还可以使用 'packed' 属性告诉编译器您更关心空间而不是字对齐/访问速度:

enum foo { ... } __attribute__((packed));

其他编译器也有类似的提示。

(这在尝试避免编译器或 IDE 尚不支持的任何 C++11 功能时很有用。)

于 2013-02-07T03:16:55.923 回答