C语言学习-枚举

1.关于枚举,枚举是将同类型的值全部列出的一种行为。

枚举可以自行赋值,赋值后声明的量就可以直接拿来当值使用,下面就是一个例子

STM32的库将GPIO端口的类型进行枚举后,我们再初始化的时候,就可以直接拿来使用。

这样做有一个最大的好处是,可读性要更强。下面两个是相同操作,但是前者要更加明确。

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 

GPIO_InitStructure.GPIO_Mode = 0x10; 

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;

2.枚举可以不赋值,在使用的时候可以直接进行使用,系统回对第一个赋值0,后面逐个加1

这样使用有几个好处,

第一个就是可读性强,文字要比数字表达的含义明显,特别是枚举里面的量特别多的时候。

第二个就是调用方便,假如要在数组中要使用CO2时,直接写STATE[CO2];不用去逐个数。(这里是举例)

第三个是有个使用技巧,就是变量总数,因为是从0开始数的,假设10个变量的话,第10个变量,会赋值为9,我们再加一个state_sum,state_sum就会等于10.

这个技巧后面会用的比较多。

#include "stdio.h"
int main()
{
  enum
      {
          CO2,
          PM2.0,
          TEMPER,

          .....
         state_sum
   };
   printf("week1 = %d",week1);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值