1.枚举的定义

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

2.使用枚举类型的好处

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

3.枚举的应用

 /*红色、黄色、绿色、蓝色,黑色*/
enum color{red,yellor,green,blue,black};
int main()
{
char user_color;
while()
{
printf("\n请输入颜色");
scanf("%d",&user_color);
switch(user_color)
{
case red: printf("\n你输入的是红色\n"); break;
case yellor: printf("\n你输入的是黄色\n"); break;
case green: printf("\n你输入的是绿色\n"); break;
case blue: printf("\n你输入的是蓝色\n"); break;
case black: printf("\n你输入的是黑色\n"); break;
}
} return ;
}

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

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

 typedef enum workday  //此处的workday可以省略,或者改成其他,不会影响后面
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday
} workday; //此处的workday为枚举型enum workday的别名,类似于int

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

 typedef enum
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday
} workday; //此处的workday为枚举型enum workday的别名
workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即enum workday

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

 typedef enum
{
LED1 = ,
LED2 = ,
LED3 = ,
LED4 =
} Led_TypeDef; typedef enum
{
BUTTON_WAKEUP = ,
BUTTON_TAMPER = ,
BUTTON_KEY = ,
BUTTON_RIGHT = ,
BUTTON_LEFT = ,
BUTTON_UP = ,
BUTTON_DOWN = ,
BUTTON_SEL =
} Button_TypeDef;

  

  

C语言——枚举类型用法的更多相关文章

  1. [编程] C语言枚举类型(Enum)

    C语言枚举类型(Enum):定义形式为:enum typeName{ valueName1, valueName2, valueName3, ...... };enum 类型名{名字1,名字2} 枚举 ...

  2. C语言枚举类型(Enum)深入理解

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  3. C++枚举类型Enum及C++11强枚举类型用法

    C++中的枚举类型常常和switch配合使用,这里用一个简单的switch控制键盘回调的代码片段来说明枚举的用法: //W A S D 前.后.左.右行走 enum Keydown{ Forward= ...

  4. C语言枚举类型enum-(转)-温故而知新

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  5. C语言枚举类型(Enum)

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  6. C语言枚举类型

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等.以每周七天为例,我 ...

  7. Java枚举类型的用法

    JDK1.5引入了新的类型——枚举.在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便. 1.用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fia ...

  8. c#枚举类型操作方法总结-1

    关于枚举类型用法总结两点,分享如下: 1.  根据枚举值获取枚举值的描述信息,可以封装一个方法供调用: //  enumValue是传入的枚举值 public string GetEnumDescrp ...

  9. 枚举类型C语言规律用法总结

    注:以下全部代码的执行环境为VC++ 6.0 在程序中,可能需要为某些整数定义一个别名,我们可以利用预处理指令#define来完成这项工作,您的代码可能是: #define MON  1#define ...

随机推荐

  1. 源码编译apache出错

    报错信息如下 exports.c:1572: error: redefinition of `ap_hack_apr_allocator_create' exports.c:177: error: ` ...

  2. Java: Integer用==比较时127相等128不相等的原因

    直接看问题吧 for (int i = 0; i < 150; i++) { Integer a = i; Integer b = i; System.out.println(i + " ...

  3. Windows10无法打开NVIDA控制面板

    今天开机,突然发现NVIDA控制面板无法打开,在桌面右键启动nView Desktop Manager,点击启动,发现也无法启动控制面板,并且提示[您当前未使用连接到nvidia gpu的显示器].查 ...

  4. python - jpype模块,python调用java的接口

    转载自: http://www.cnblogs.com/junrong624/p/5278457.html https://www.cnblogs.com/fanghao/p/7745356.html ...

  5. 利用开源SlidingMenu框架实现左右侧滑菜单的功能

    package com.loaderman.slidingmenudemo; import android.os.Bundle; import android.support.v4.app.Fragm ...

  6. HTML基础之DOM

    DOM(Document Object Model 文档对象模型) 一个web页面的展示,是由html标签组合成的一个页面,js是一门语言,dom对象实际就是将html标签转换成了一个文档对象.可以通 ...

  7. Centos下使用subversion

    Centos下使用subversion 1.安装 yum install subversion 2.创建版本库 a.mkdir -p /var/svn/repositories(创建版本库目录) b. ...

  8. Nginx正向代理、反向代理、负载均衡及性能优化

    一.Nginx是什么 Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Rambler.ru开发的,在Rambler.ru网站平稳的 ...

  9. python关键字参数和位置参数

    关键字参数必须跟随在位置参数后面! 因为python函数在解析参数时, 是按照顺序来的, 位置参数是必须先满足, 才能考虑其他可变参数.,否则报错如下: In [74]: print(s1.forma ...

  10. Oracle 笔记(二)

    Oracle的sql语言: Sql全称:struct query language 结构化查询语言 五大类: DDL:数据定义语言  create  alter  drop DQL:数据查询语言sel ...