enum的数据类型是int还是uint啊?多少位呢?

rickypc 2009-09-14 03:19:33
enum的数据类型是int还是uint啊?多少位呢?8位?16位?32位?64位?
...全文
5014 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
kobemouse 2009-09-14
  • 打赏
  • 举报
回复 1
在编译系统的缺省情况下,enum为32位(32位平台下),但如果加入了编译选项(如GCC下的-fshort_enums),那编译系统将根据enum定义的最大值自动确定存储大小。
borefo 2009-09-14
  • 打赏
  • 举报
回复
不好意思,说错了,在这里更正一下:
1)enum类型就是一种类型,但它在计算机里是以整型的方式存储的
2)由1)得出enum不是int,不支持++,+=,-=
3)可以把一个int强制转成enum型付给enum变量,但是不推荐这么用,因为enum可能不是连续的数值
MiJoyWei 2009-09-14
  • 打赏
  • 举报
回复
enum是枚举类型的,它本身也是一种数据类型,可以有数据成员和成员函数!但是它所带的数据成员为int型的,我是新手,不知道我这样说对不对,我个人是这样理解的!
borefo 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yangyunzhao 的回复:]
引用 4 楼 w0911h 的回复:
enum的实际类型就是int,可以为负值,长度和int型一样,32位机上通常是32位

那它可以++么,可以+=么,可以-=么?典型的int运算不支持,能算int么?
[/Quote]


可以的,但是不推荐这么用,因为enum可能不是连续的数值
rickypc 2009-09-14
  • 打赏
  • 举报
回复
不好意思,我的问题表达有点问题,enum是枚举类型啊,但是其中的数据表示是整型的,谢谢!
cba_v 2009-09-14
  • 打赏
  • 举报
回复
enum 我的理解 是const int或者是 宏定义(但是 不是简单的替换)
w0911h 2009-09-14
  • 打赏
  • 举报
回复
可能我表达有误,枚举类型本身是一种基本数据类型,它的值本质上就是一些int型的集合
[Quote=引用 6 楼 yangyunzhao 的回复:]
引用 4 楼 w0911h 的回复:
enum的实际类型就是int,可以为负值,长度和int型一样,32位机上通常是32位

那它可以++么,可以+=么,可以-=么?典型的int运算不支持,能算int么?
[/Quote]
hoomey 2009-09-14
  • 打赏
  • 举报
回复
写错了 改下
4楼正解
在补充一下
enum定义的值不能修改,相当于const int
yangyunzhao 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 w0911h 的回复:]
enum的实际类型就是int,可以为负值,长度和int型一样,32位机上通常是32位
[/Quote]
那它可以++么,可以+=么,可以-=么?典型的int运算不支持,能算int么?
hoomey 2009-09-14
  • 打赏
  • 举报
回复
4楼正解
在补充一下
enum定义的值不能修改,相当于const uint
w0911h 2009-09-14
  • 打赏
  • 举报
回复
enum的实际类型就是int,可以为负值,长度和int型一样,32位机上通常是32位
kouwenlong 2009-09-14
  • 打赏
  • 举报
回复
枚举也是一种类型。
Lochan 2009-09-14
  • 打赏
  • 举报
回复
enum不是枚举么。。
yangyunzhao 2009-09-14
  • 打赏
  • 举报
回复
enum的类型就是enum啊。怎么会是int呢?
你尝试把enum的变量++看!

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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