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; 展开
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; 展开
3个回答
展开全部
就是使枚举成员拥有指定值,而不是特殊值。
枚举类型定义规定,默认第一项枚举成员值为0,后一项枚举成员的值自动取前一个枚举成员的值加1。
但实际应用中,第一项的值不一定为0,所有枚举变量也不一定是连续的,这时就需要显式赋值。
如
enum TEST
{
TEST1 =1, //从1开始,而不是从0.
TEST2,//默认上一个加1,所以这个值是2.
TEST10 = 10, //出现不连续需求,这个值是10.
TEST11, //上一个加一,这个值是11.
};
在使用枚举赋值时,需要注意:
1 不可以有重复值,否则会报错;
2 尽量从小到大排列,虽然乱序编译器不会报错,但会影响阅读和维护。
展开全部
对枚举赋值是确定每个量的值,不然每个量的值是在前一个量的值得基础上加1的……希望可以帮到你
更多追问追答
追问
例如,GPIO_Mode_IN_FLOATING = 0x04,本来GPIO_Mode_IN_FLOATING的值是01。赋值之后变成0x04了?
追答
是的,如果 不赋值的话,它的值是1,赋值后以所赋的值为准
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
枚举变量默认从0开始,以此递增。
但是可以手动赋值,之后其后以此递增.
但是可以手动赋值,之后其后以此递增.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询