首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言枚舉常量用法詳解:預設值與自訂值

     編輯:關於C語言

基本語法

enum 枚舉名 { 標識符1, 標識符2, ... };
  • 第一個成員預設值為 0,後續遞增 1。
  • 可手動指定任意整數值,後續成員在前一值基礎上 +1。
  • 枚舉常量屬於編譯期常數,可用於 switch、陣列大小、#if 等。

範例一:預設遞增

#include <stdio.h>
enum OS { WIN, LINUX, UNIX };  // 0, 1, 2

int main() {
    printf("%d %d %d\n", WIN, LINUX, UNIX);
    return 0;
}
// 輸出:0 1 2

範例二:手動指定值

#include <stdio.h>
enum OS { WIN = 1, LINUX, UNIX = 12 };  // 1, 2, 12

int main() {
    printf("%d %d %d\n", WIN, LINUX, UNIX);
    return 0;
}
// 輸出:1 2 12

進階用法

  • 位元旗標:enum { READ = 1<<0, WRITE = 1<<1, EXEC = 1<<2 }; 方便位運算組合。
  • 強型別模擬:搭配 typedef enum {...} Type; 增加語意清晰度。
  • 反向查找:C 標準庫無內建,需自建映射表或用 switch 反推名稱。

注意事項

  • 枚舉成員在同一作用域內不可重名。
  • 底層類型由編譯器決定 (通常為 int),不可假設大小。
  • C++11 enum class 提供作用域隔離與強型別,C 語言無對應機制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved