求教 C语言 枚举类型 长度 如何指定

[复制链接]
3064|8
 楼主| 电子乌托邦 发表于 2015-9-18 10:27 | 显示全部楼层 |阅读模式
typedef enum
{
        RED = 0,
        BLUE = 1,
}COLOR;
COLOR  col;

MDK中定义col被定义为无符号8位数;
我想定义为16位数,C语言有解吗?


 楼主| 电子乌托邦 发表于 2015-9-18 10:28 | 显示全部楼层
typedef enum
{
        RED = 1000,
        BLUE = 1001,
}COLOR;
这个办法行,但是RED的值是1000了。参与运算的时候困难有没有什么好方法
nethopper 发表于 2015-9-18 10:48 | 显示全部楼层
这样的话,添加个占位置的但不用的变量就可以了吧?
 楼主| 电子乌托邦 发表于 2015-9-18 11:15 | 显示全部楼层
nethopper 发表于 2015-9-18 10:48
这样的话,添加个占位置的但不用的变量就可以了吧?

这法子可以,但是怪怪的,拍移植有问题
dirtwillfly 发表于 2015-9-18 14:14 | 显示全部楼层
c51中由枚举类型中长度最大的常量指定,但不会超过16位
你可以另外增加一个16位的数据,不用它就是了。也不影响另外两个数据的使用
dirtwillfly 发表于 2015-9-18 14:14 | 显示全部楼层
typedef enum
{
         RED = 0,
         BLUE = 1,
         green =1002,
}COLOR;
songchenping 发表于 2015-9-18 14:55 | 显示全部楼层
正解啊。
457344370 发表于 2015-9-18 15:07 来自手机 | 显示全部楼层
在options for target 里的C/C++里选中enum container always int试试
疯小子 发表于 2015-9-19 07:34 来自手机 | 显示全部楼层
枚举类型长度与最长的数据类型一样。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

140

主题

633

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部