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
}
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)