C语言中,对枚举值赋值是什么意思?

typedefenum{GPIO_Mode_AIN=0x0,GPIO_Mode_IN_FLOATING=0x04,GPIO_Mode_IPD=0x28,GPIO_Mode... typedef enum { GPIO_Mode_AIN = 0x0,
GPIO_Mode_IN_FLOATING = 0x04,

GPIO_Mode_IPD = 0x28,
GPIO_Mode_IPU = 0x48,

GPIO_Mode_Out_OD = 0x14,

GPIO_Mode_Out_PP = 0x10,

GPIO_Mode_AF_OD = 0x1C,

GPIO_Mode_AF_PP = 0x18 }GPIOMode_TypeDef;
展开
 我来答
风若远去何人留
2015-10-23 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部

就是使枚举成员拥有指定值,而不是特殊值。

枚举类型定义规定,默认第一项枚举成员值为0,后一项枚举成员的值自动取前一个枚举成员的值加1。

但实际应用中,第一项的值不一定为0,所有枚举变量也不一定是连续的,这时就需要显式赋值。

enum TEST
{
   TEST1 =1, //从1开始,而不是从0.
   TEST2,//默认上一个加1,所以这个值是2.
   TEST10 = 10, //出现不连续需求,这个值是10.
   TEST11, //上一个加一,这个值是11.
};

在使用枚举赋值时,需要注意:

1 不可以有重复值,否则会报错;

2 尽量从小到大排列,虽然乱序编译器不会报错,但会影响阅读和维护。

百度网友262a8d918
2014-04-10 · TA获得超过184个赞
知道小有建树答主
回答量:328
采纳率:100%
帮助的人:152万
展开全部
对枚举赋值是确定每个量的值,不然每个量的值是在前一个量的值得基础上加1的……希望可以帮到你
更多追问追答
追问
例如,GPIO_Mode_IN_FLOATING = 0x04,本来GPIO_Mode_IN_FLOATING的值是01。赋值之后变成0x04了?
追答
是的,如果 不赋值的话,它的值是1,赋值后以所赋的值为准
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
愉锋n
2014-04-10 · TA获得超过362个赞
知道小有建树答主
回答量:274
采纳率:50%
帮助的人:224万
展开全部
枚举变量默认从0开始,以此递增。
但是可以手动赋值,之后其后以此递增.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式