C语言枚举
Embedded learner 人气:0一、什么是枚举
我对枚举的理解就是把一些固定的值—列举出来分别起个名字,比如说给1取个名字叫Ture,0取个名字叫False,Ture和False都是表示同一个类型的数据,比如说都是代表逻辑的对错,这里用51单片机的IE中断使能寄存器来举一个例子。
二、枚举的用法
- 1、直接定义枚举值,然后给普通变量赋值
- 2、定义一个带名称的枚举
- 3、定义枚举别名
#include <stdio.h> enum { EX0_ENABLE = 0x01, ET0_ENABLE = 0x02, EX1_ENABLE = 0x04, ET1_ENABLE = 0x08, ES_ENABLE = 0x10, ET2_ENABLE = 0x20, EA_ENABLE = 0x80, }; typedef enum { monday, tuesday, wednesday, } weekday; int main() { unsigned char IEReg; weekday day; IEReg |= ET0_ENABLE; IEReg |= EA_ENABLE; day = monday; printf("day=%u\r\n",day); return 0; }
三、枚举有什么用,用在哪里?
枚举的作用:
通过枚举总值来灵活分配数组的大小,方便从大数组里调取需要的数据。
为固定的值命名,当作数组访问的下标,当数组很大时,比如有几十上百个,那么如果你0-100去表示就很难记住每一个值代表什么意思。
把列举的固定值定义为某一种数据类型,这样定义的目的是方便提高代码的可读性和专业性。
枚举和define
比较像,define
也是用一个别名来代表一个数据,甚至代表一个函数。但是enum的值有自动递增的功能,另外enum
是一组同类型数据的集合,在项目比较大的情况下,用枚举来封装数据能更好的实现模块化。
四、枚举要注意的地方
- 枚举的值默认是从0开始递增。
- 枚举最大值是0XFFFFFFFF,即4个字节。
枚举里面的值不一定要从小到大,默认是递增,也可以自己设置值。
加载全部内容