D語言中的列舉型別

2021-03-31 12:02:25 字數 1561 閱讀 9713

列舉宣告:enum標誌符

列舉體enum列舉體enum標誌符:列舉基本型別

列舉體enum列舉基本型別:列舉體

列舉基本型別:

型別

列舉體:;多個列舉成員:

列舉成員

列舉成員,列舉成員,多個列舉成員

列舉成員:

標誌符

標誌符=表示式

enumdeclaration:enumidentifier

enumbodyenumenumbodyenumidentifier:enumbasetype

enumbodyenumenumbasetype:enumbody

enumbasetype:

type

enumbody:;enummembers:

enummember

enummember,enummember,enummembers

enummember:

identifier

identifier=expression

列舉用來定義一組相關的整數常量。

如果指定了 enum 標誌符 ,多個列舉成員 就在 enum 標誌符 的作用域內被宣告。enum 標誌符 宣告了乙個新型別。

如果不指定 enum 標誌符 ,則列舉稱為 匿名列舉,多個列舉成員 在 列舉宣告 出現的作用域內被宣告。沒有新型別被建立;多個列舉成員 的型別是 列舉基本型別 。

列舉基本型別 是列舉的基本型別。它必須是整數型別。如果忽略,預設為int

enum 	// 匿名列舉
定義常量 a=0、b=1、c=2 :
const int a = 0;

const int b = 1;

const int c = 2;

等價於:
enum x 	// 命名列舉
這定義了新的型別 x ,擁有值 x.a=0、x.b=1、x.c=2 。

命名列舉成員可以被隱式轉換為整數型別,但是整數型別不能被隱式轉換為列舉型別。

列舉必須至少擁有乙個成員。

如果列舉成員被賦予乙個 表示式 ,則鎮各成員的值就是 表示式 的結果。表示式 必須在編譯時可以被決定。後續的沒有 表示式 的列舉成員的值是前乙個成員加一。

enum 
這令 a=0、b=12、c=13、d=8、e=9。
.min			列舉的最小值

.max 列舉的最大值

.sizeof 儲存列舉值所需要的儲存器大小

例如:

x.min是 x.a

x.max是 x.c

x.sizeof等價於 int.sizeof

如果沒有顯式初始化,列舉變數的值被初始化為第乙個列舉成員的值。
enum x 

x x; // x 被初始化為 3

C語言中列舉型別

列舉變數的建立 方法一 enum weekday 宣告了乙個列舉型別enum weekday enum weekday workday,weekend 用上面申明的列舉型別定義列舉變數 workday,weekend 方法二 不宣告有名字的列舉型別,直接定義列舉變數 enum workday,wee...

c語言中的列舉

列舉 或列舉 是c中使用者定義的資料型別。它主要用於將名稱分配給積分常量,名稱使程式易於閱讀和維護。列舉相對來說運用和理解都是比較簡單的 我們直接看例子 an example program to demonstrate working of enum in c include enum week ...

C語言中的自定義型別 enum列舉

列舉在c語言中其實是一些符號常量集。列舉定義了一些符號,這些符號的本質就是int型別的常量,每個符號和乙個常量繫結。這個符號就表示乙個自定義好的乙個識別碼,編譯器對列舉的認知就是符號常量所繫結的那個int型別的數字。例如可以使用數字1 2 3 4 5 6 7來代表周一到週末,但是純數字並不直觀,這個...