【发布时间】:2016-05-26 15:13:21
【问题描述】:
在编写具有 5 个选项(使用 c2hs)的 C 枚举的 Storable 实例时,{# sizeof #} 宏返回 4(即 4 个字节)。当 3 位就足够时,这不是非常浪费吗?这是否取决于内存字的大小?
【问题讨论】:
在编写具有 5 个选项(使用 c2hs)的 C 枚举的 Storable 实例时,{# sizeof #} 宏返回 4(即 4 个字节)。当 3 位就足够时,这不是非常浪费吗?这是否取决于内存字的大小?
【问题讨论】:
枚举的大小是实现定义的。标准说:
6.7.2.2 枚举说明符
...每个枚举类型都应与
char、有符号整数类型或 无符号整数类型。类型的选择是实现定义的...
顺便说一句,在 C++ 中可以显式指定底层类型,例如:
enum E : int
{
// ...
};
【讨论】: