enum用法

变秃了也就变强了發表於2024-06-09

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)

相關文章