枚举类型的极限,(很有启发的问题)

linhai1978 2008-05-13 09:48:22
在keil51的环境下,8位51单片机
type enum
{
0,
1,
...
254
...(注意只要超过254就又变成从0开始了)
x=600(实际上x的数值是88)

}eee;
请教高手们,这个枚举如何才能超过254
...全文
214 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Supper_Jerry 2008-05-14
  • 打赏
  • 举报
回复
换一种数据类型吧。
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zenny_chen 的回复:]
枚举的默认类型为unsigned int类型
所以,如果你的机器环境下对于int类型只有8位的话,那么到255就是达到最大值了,因此再上去就变为0了。
如果最大表示常量整型可达到16位的话(比如long类型),那么可以尝试以下做法:

type enum
{
ENUM0 = 0,
ENUM1 = 1,
//...
ENUM254 = 254,
//...(注意只要超过254就又变成从0开始了)
x=600UL //(实际上x的数值是88)

}eee;
[/Quote]
楼主试试看。
Treazy 2008-05-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 linhai1978 的回复:]
如何在不改变eee的结构的情况下进行增加数值,可以改为数组吗>?
[/Quote]
数组?怎么办?

这个和编译器相关的
在你的编译器中enum就是8位unsigned的

所以最大就是255了,一般用enum也不可能在一个enum中定义这么多值

如果你定义多了,就考虑考虑设计吧,有很多问题编译器都是有极限的

也有无能为力的时候,这个时候就需要自己多在设计上花工夫以来饶过一些问题!
惜愿 2008-05-14
  • 打赏
  • 举报
回复
8位的单片机用enum嵌套来写???
enum
{
enum{};
enum{};
enum{};
}
楼上的已经说过了......借来用用.
linhai1978 2008-05-14
  • 打赏
  • 举报
回复
如何在不改变eee的结构的情况下进行增加数值,可以改为数组吗>?
fengdream 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用楼主 linhai1978 的帖子:]
在keil51的环境下,8位51单片机
type enum
{
0,
1,
...
254
...(注意只要超过254就又变成从0开始了)
x=600(实际上x的数值是88)

}eee;
请教高手们,这个枚举如何才能超过254
[/Quote]

//如果int的值为8位,直接
type enmu
{
x=254,
a
}
其中a就超过了,但是不能在增加了。
如果是int是16位或是32位,默认就支持
zenny_chen 2008-05-13
  • 打赏
  • 举报
回复
枚举的默认类型为unsigned int类型
所以,如果你的机器环境下对于int类型只有8位的话,那么到255就是达到最大值了,因此再上去就变为0了。
如果最大表示常量整型可达到16位的话(比如long类型),那么可以尝试以下做法:


type enum
{
ENUM0 = 0,
ENUM1 = 1,
//...
ENUM254 = 254,
//...(注意只要超过254就又变成从0开始了)
x=600UL //(实际上x的数值是88)

}eee;

羽中漫步 2008-05-13
  • 打赏
  • 举报
回复
实际上超过了,只是溢出了。取低8位当然又从0开始了。
fallening 2008-05-13
  • 打赏
  • 举报
回复
把这个枚举内部的东西改为枚举类型
enum{

enum{...},
...
enum{...}

}eee;
fallening 2008-05-13
  • 打赏
  • 举报
回复
把这个枚举内部的东西改为枚举类型
enum{

enum{...},
...
enum{...}

}eee;
fallening 2008-05-13
  • 打赏
  • 举报
回复
里边所有的类型都改为枚举类型行不?
type enum
{
enum{},
......
enum{},
}eee;
hansin 2008-05-13
  • 打赏
  • 举报
回复
可以定义16位枚举数据吗?
hansin 2008-05-13
  • 打赏
  • 举报
回复
8位整数到254,16位可以定义吗?

69,382

社区成员

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

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