enum用法
1. 基本用法
enum Color { //Color被称为枚举类型
RED, //默认是0开始
GREEN = 5,
BLUE
};
enum Color myColor; //enum Color
myColor = RED; // myColor = 0
myColor = BLUE; // myColor = 6
2. 使用typedef简化代码(推荐)
typedef enum {
RED, // 0
GREEN,
BLUE
} Color;
Color myColor;
myColor = GREEN; // myColor = 1
3. 注意点
- 枚举类型默认为整型,因此不用再在内部声明
- 如果想在C和C++中使用++运算符,必须声明为int才能兼容,unsigned char在C++中不能++的
4. 具体应用
4.1 用于函数的返回值
typedef enum // .h文件中
{
HAL_OK = 0x00U,
HAL_ERROR = 0x01U,
HAL_BUSY = 0x02U,
HAL_TIMEOUT = 0x03U
} HAL_StatusTypeDef;
//.c文件中
HAL_StatusTypeDef HAL_UART_Receive_IT(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size)
{
return HAL_OK; //HAL_ERROR/HAL_BUSY/HAL_TIMEOUT
}
//其他
typedef enum
{
RESET = 0U,
SET = !RESET
} FlagStatus, ITStatus;
typedef enum
{
DISABLE = 0U,
ENABLE = !DISABLE
} FunctionalState;
#define IS_FUNCTIONAL_STATE(STATE) (((STATE) == DISABLE) || ((STATE) == ENABLE))
typedef enum
{
SUCCESS = 0U,
ERROR = !SUCCESS
} ErrorStatus;
//区分State和Status(区分不来)
4.2 使用enum进行位掩码
typedef enum {
OPTION_A = 1 << 0, // 0001
OPTION_B = 1 << 1, // 0010
OPTION_C = 1 << 2 // 0100
} Options;
4.3 枚举的范围(C++11)
本文来自博客园,作者:变秃了也就变强了,转载请注明原文链接:https://www.cnblogs.com/lichangyi/p/18239554
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!