zoukankan      html  css  js  c++  java
  • C语言——枚举类型用法

    枚举的定义

      enum 枚举名{ 枚举元 素1,枚举元素2,枚举元素3...};

    使用枚举类型的好处

      增加程序的可读性,我们都知道在计算机中所有信息都是用二进制来表示的,如果你用二进制来表示某件事务是非常不直观的,为了使程序更加直观我们引入枚举。

    枚举的应用

    复制代码
     1 /*红色、黄色、绿色、蓝色,黑色*/
     2 enum color{red,yellor,green,blue,black};
     3 int main()
     4 {
     5     char user_color;
     6     while(1)
     7     {
     8         printf("
    请输入颜色");
     9         scanf("%d",&user_color);
    10         switch(user_color)
    11         {
    12             case red: printf("
    你输入的是红色
    "); break;
    13             case yellor: printf("
    你输入的是黄色
    "); break;
    14             case green: printf("
    你输入的是绿色
    "); break;
    15             case blue: printf("
    你输入的是蓝色
    "); break;
    16             case black: printf("
    你输入的是黑色
    "); break;
    17         }
    18     }
    19 
    20     return 0;
    21 }
    复制代码

      枚举元素列表中,每个元素只能是整型,如果我们不指定某个元素的大小,默认是从0开始排列,如第2行中的枚举列表中red = 0、yellor = 1......black = 4,从这个代码中我们可以看到红色,黄色不再用数字表示,而是用枚举元素来表示红色、黄色等一些有意义的词,而这个枚举元素的名称可以自己定义,枚举元素本质还是数字。

    用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明

    复制代码
     1 typedef enum workday  //此处的workday可以省略,或者改成其他,不会影响后面
     2 {
     3     saturday,
     4     sunday,
     5     monday,
     6     tuesday,
     7     wednesday,
     8     thursday,
     9     friday
    10 } workday; //此处的workday为枚举型enum workday的别名,类似于int
    复制代码

    正如上边代码注释所说,worday可以不要,代码如下

    复制代码
     1 typedef enum
     2 {
     3     saturday,
     4     sunday,
     5     monday,
     6     tuesday,
     7     wednesday,
     8     thursday,
     9     friday
    10 } workday; //此处的workday为枚举型enum workday的别名
    11 workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即enum workday
    复制代码

    在程序中我们是直接可以用某个枚举中的枚举元素的,在STM32开发库中这种枚举用法非常多,下图就是STM32库中的代码示例,利用这个方法开发库,可以大大增加程序的可读性。

    复制代码
     1 typedef enum 
     2 {
     3   LED1 = 0,
     4   LED2 = 1,
     5   LED3 = 2,
     6   LED4 = 3
     7 } Led_TypeDef;
     8 
     9 typedef enum 
    10 {  
    11   BUTTON_WAKEUP = 0,
    12   BUTTON_TAMPER = 1,
    13   BUTTON_KEY = 2,
    14   BUTTON_RIGHT = 3,
    15   BUTTON_LEFT = 4,
    16   BUTTON_UP = 5,
    17   BUTTON_DOWN = 6,
    18   BUTTON_SEL = 7
    19 } Button_TypeDef;
  • 相关阅读:
    JS项目快速压缩(windows平台)
    Maven工程的POM继承
    Docker构建一个node镜像
    win10家庭版安装Docker for Windows
    linux,vim和bash命令小册
    vue文档阅读笔记——计算属性和侦听器
    nodejs的jekins部署
    `vue-router`的`History`模式下的项目发布
    花式图表,炫技时刻!PPT技能
    在创业之路上不断创新
  • 原文地址:https://www.cnblogs.com/lixuejian/p/13150745.html
Copyright © 2011-2022 走看看