枚举的大小

lanzhengpeng2 2003-01-07 09:46:17
C++标准中有没有规定枚举类型所尺寸?而各个流行的编译器中,他们又是按照什么样的规则来决定一个枚举的大小的?
例如:
enum EXAMPLE1{
E1_ONE,
E1_TWO,
};
enum EXAMPLE2{
E2_ONE,
E2_TWO,
E2_FORCEDWORD = 0xFFFFFFFF,
};
sizeof(EXAMPLE1)和sizeof(EXAMPLE2)各等于多少,他们的大小还受别的因素影响吗?如数据对齐方式或代码对齐方式?
...全文
403 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ixMind 2003-01-07
  • 打赏
  • 举报
回复
好像有些编译器对枚举有不同的处理
如果bc对255以内的是用一个byte来存储
在c#里也差不多是这样分级处理的
key20003 2003-01-07
  • 打赏
  • 举报
回复
我只想补充一下
不同的编译器对sizeof(int)也不相同
如vc++中是4个字节
而在tc++中是2个字节
windcsn 2003-01-07
  • 打赏
  • 举报
回复
或许你会认为他里面有多个枚举量。是的,多个枚举两并不影响其类型的大小,就象整数类型有很多种值,但是sizeof(int)是4(我的系统)个字节。
windcsn 2003-01-07
  • 打赏
  • 举报
回复
枚举在默认的情况下是将整数值赋给它。在内存中是用一个整数字节来存储的,所以上面的两个sizeof都应该是相应系统的整数字节数。
qing_li73 2003-01-07
  • 打赏
  • 举报
回复
have a crossed test via different environment
lanzhengpeng2 2003-01-07
  • 打赏
  • 举报
回复
ixMind(路在何方) :我也曾经这么听说过。所以,我要保证代码能在各个平台上无差异的运行,就必须清楚的知道枚举的大小或决定枚举尺寸大小的的规则

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧