微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

但是可以以某种方式定义大小吗?例如,我想使用一个枚举,它的sizeof是自然字的大小(通常是unsigned long).

解决方法

你可以在C 11:
enum /*class*/ MyEnum : unsigned long
{
    Val1,Val2
};

(您可以为旧式枚举或新式枚举类指定枚举的大小.)

您还可以通过有趣的欺骗来增加枚举的最小大小,利用您引用的句子的最后一句:

enum MyEnum
{
    Val1,Val2,ForceSize = 0xFFFFFFFF // do not use
};

…这将确保枚举至少为32位.

原文地址:https://www.jb51.cc/c/114681.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐