枚举类型描述的是一组整型值的集合,方便用描述来使用对应的值。若需要修改某个枚举成员(常量)的值,直接修改枚举类型定义即可。
关于枚举类型(枚举标签)、枚举成员(枚举常量)、枚举变量:
enum示例:枚举成员被定义为INT类型(4字节)的数字编号,数字编号可以重复;通常从0起编依次加1;或者是自己定义。
枚举变量的取值范围正常应该是对应枚举类型的枚举成员之一。
利用运行rt-thread的stm32平台,可以用下列示例代码测试枚举类型。
#include <rtthread.h>
#define INT_MIN -2147483648 //80000000
#define INT_MAX 2147483647 //7FFFFFFF
enum test{m1=INT_MIN,m1_1,m2=33,m2_1,m3=INT_MAX,m4=33};
int enum_test(void)
{
rt_kprintf("枚举应用示例\n");
rt_kprintf("%d\n%d\n%d\n%d\n%d\n%d\n", m1,m1_1,m2,m2_1,m3,m4);
rt_kprintf("枚举应用示例2\n");
rt_kprintf("%d\n%d\n",(int)INT_MIN,(int)INT_MAX);
enum test test1,test2,test3;
test1=m2_1;
test2=m3;
test3=11; //非法使用,MDK编译时警告,但不认为是错误。
rt_kprintf("%d\n%d\n%d\n",test1,test2,test3);
return 0;
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(enum_test, test enum app.);
调试串口输出:
\ | /
- RT - Thread Operating System
/ | \ 4.0.2 build Feb 12 2022
2006 - 2019 Copyright by rt-thread team
turn off LED!
msh >enum_test
枚举应用示例
-2147483648
-2147483647
33
34
2147483647
33
枚举应用示例2
-2147483648
2147483647
34
2147483647
11
msh >