首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在c++中定义枚举的大小吗?

我可以在c++中定义枚举的大小吗?
EN

Stack Overflow用户
提问于 2012-08-26 05:03:35
回答 2查看 22.1K关注 0票数 23

据我所知(从我在cpp编程语言中读到的),大小应该是“一些可以保持其范围的整数类型的大小,并且不大于sizeof( int ),除非枚举数不能表示为int或unsigned int”。

但是有没有可能以某种方式定义大小呢?例如,我想使用一个枚举,它的sizeof是自然单词的大小(通常是无符号的long)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-26 05:06:24

您可以在C++11中执行以下操作:

代码语言:javascript
运行
复制
enum /*class*/ MyEnum : unsigned long
{
    Val1,
    Val2
};

(您可以为旧式enum或新式enum class指定枚举的大小。)

您还可以通过有趣的技巧增加枚举的最小大小,利用您引用的句子的最后一个短语:

代码语言:javascript
运行
复制
enum MyEnum
{
    Val1,
    Val2,
    ForceSize = 0xFFFFFFFF // do not use
};

…这将确保枚举至少是32位的。

票数 53
EN

Stack Overflow用户

发布于 2012-08-26 05:06:26

在C++11中,您可以使用枚举类,您可以在其中指定底层类型。在C++03中没有解决方案。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12125637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档