C語言中 enum詳解

2021-10-25 02:05:59 字數 2119 閱讀 7182

note:

儘管乙個列舉常量占用4個位元組,恰好和int型別占用的位元組數相同,通過sizeof操作符求得,但enum型別和int型別並不等價,將int型別的整數賦值給enum變數時,需要進行強制型別裝換。因為列舉型別是一種基本資料型別,而不是一種構造型別,所以不能把這些列舉常量說明為整形,字元型或其他型別。(通常用來定義一些標誌位)

enum day

;sizeof

(day)==4

;

第乙個列舉成員的預設值為整型的 0,後續列舉成員的值在前乙個成員上加 1。我們在這個例項中把第乙個列舉成員的值定義為 1,第二個就為 2,以此類推。在列舉型別中定義的常量,屬於定義列舉的作用域,而不屬於這個列舉型別。

enum day

;//其中mon的值為0,後面型別依次加1.

//mon, tue, wed, thu, fri, sat, sun對整個檔案有效,「類似巨集定義」

定義列舉型別時改變列舉元素的值:

enum day

;//mon,值為0,tue值為1,wed值為6,thu值為7,fri值為8,sat值為9,sun值為10

列舉型別定義方式:

//型別於結構體

enum day

;enum day day;

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

enum day

day;

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

----

enum

day;

以下將整數裝換為列舉:

#include

#include

intmain()

workday;

int a =1;

enum day weekend;

weekend =

(enum day ) a;

//型別轉換

//weekend = a; //錯誤

printf

("weekend:%d"

,weekend)

;return0;

}//weekend:1

C語言中enum 列舉

列舉是 c 語言中的一種基本資料型別,它可以讓資料更簡潔,更易讀。列舉語法定義格式為 enum 列舉名 接下來我們舉個例子,比如 一星期有 7 天,如果不用列舉,我們需要使用 define 來為每個整數定義乙個別名 define mon 1 define tue 2 define wed 3 def...

C語言中enum型別的用法

11.10 列舉型別 在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,c語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 ...

c語言中enum型別的用法

11.10 列舉型別 在實際問題中,有些變數的取值被限定在乙個有限的範圍內。例如,乙個星期內只有七天,一年只有十二個月,乙個班每週有六門課程等等。如果把這些量說明為整型,字元型或其它型別顯然是不妥當的。為此,c語言提供了一種稱為 列舉 的型別。在 列舉 型別的定義中列舉出所有可能的取值,被說明為該 ...