C语言必备知识枚举体
枚举类型是ANSI C新标准所增加的。如果一个变量只有几种可能的值,可以定义为枚举类型。所谓“枚举是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
枚举的定义形式
enum 枚举类型名
{
枚举元素列表
}枚举变量列表;
可以先声明类型再定义变量,也可以同时进行
举例
//先声明类型再定义变量
enum weekday
{
sun,
mon,
tue,
wed,
thu,
fri,
sat
};
enum weekday workday,week_end;
//声明类型同时定义变量
enum
{
sun,
mon,
tue,
wed,
thu,
fri,
sat
} workday,week_end;
枚举的使用
#include < stdio.h > //printf scanf fputc
enum weekday
{
sun,//默认是0开始 后面依次递增
mon,
tue,
wed,
thu,
fri,
sat
};
enum weekday workday;
int main(void)
{
workday = mon;
printf("workday = %drn",workday);
return0;
}
枚举注意事项
- 在编译中,对枚举元素按常量处理,它们不是变量,不能对它们赋值。
- 枚举元素作为常量,它们是有值的,语言编译按定义时的顺序使它们的值为0,1,2,…。
- 枚举值可以用来做判断比较。如: if(workday = = mon)… if(workday > sun)…
- 一个整数不能直接赋给一个枚举变量。应先进行强制类型转换才能赋值。如:workday = (enum ewwkday)2;
单片机中使用枚举的例子
描述GPIO工作模式的枚举
/**
* @brief GPIO Configuration Mode enumeration
*/
typedefenum
{
GPIO_Mode_IN = 0x00, /*!< GPIO Input Mode */
GPIO_Mode_OUT = 0x01, /*!< GPIO Output Mode */
GPIO_Mode_AF = 0x02, /*!< GPIO Alternate function Mode */
GPIO_Mode_AN = 0x03/*!< GPIO Analog Mode */
}GPIOMode_TypeDef;
描述GPIO工作速度的枚举
/**
* @brief GPIO Output Maximum frequency enumeration
*/
typedefenum
{
GPIO_Low_Speed = 0x00, /*!< Low speed */
GPIO_Medium_Speed = 0x01, /*!< Medium speed */
GPIO_Fast_Speed = 0x02, /*!< Fast speed */
GPIO_High_Speed = 0x03/*!< High speed */
}GPIOSpeed_TypeDef;
至此,枚举的简单介绍就到这了。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
单片机
+关注
关注
6032文章
44513浏览量
632689 -
C语言
+关注
关注
180文章
7597浏览量
136117 -
代码
+关注
关注
30文章
4741浏览量
68323 -
GPIO
+关注
关注
16文章
1196浏览量
51896 -
枚举
+关注
关注
0文章
16浏览量
4575
发布评论请先 登录
相关推荐
C语言枚举简述
在C语言中,如果一个变量只有几种可能的值,则可以定义为枚举类型,所谓“枚举”就是指把可能的值一一列举出来,变量的值只限于列举出来的值的范围内。
评论