c enum 列舉關鍵字

2021-06-27 13:48:28 字數 880 閱讀 5047

一般的定義方式如下:

enum enum_type_name

enum_variable_name;

注意:enum_type_name 是自定義的一種資料資料型別名,而enum_variable_name 為enum_type_name型別的乙個變數,也就是我們平時常說的列舉變數。實際上enum_type_name型別是對乙個變數取值範圍的限定,而花括號內是它的取值範圍,即enum_type_name 型別的變數enum_variable_name 只能取值為花括號內的任何乙個值,如果賦給該型別變數的值不在列表中,則會報錯或者警告。enum_const_1、enum_const_2、...、enum_const_n,這些成員都是常量,也就是我們平時所說的列舉常量(常量一般用大寫)。

enum 變數型別還可以給其中的常量符號賦值,如果不賦值則會從被賦初值的那個常量開始依次加1,如果都沒有賦值,它們的值從0 開始依次遞增1。如分別用乙個常數表示不同顏色:

enum color

colorval;

其中各常量名代表的數值分別為:

green = 1

red = 2

blue = 3

green_red = 10

green_blue = 11

下面再看看列舉與#define 巨集的區別:

1)#define 巨集常量是在預編譯階段進行簡單替換。列舉常量則是在編譯的時候確定其值。

2)一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量。

3)列舉可以一次定義大量相關的常量,而#define 巨集一次只能定義乙個。

留兩個問題:

a),列舉能做到事,#define 巨集能不能都做到?如果能,那為什麼還需要列舉?

b),sizeof(colorval)的值為多少?為什麼?

列舉 typedef關鍵字

1 列舉型別介紹及定義 目前為止接觸到的資料型別 基本資料型別 指標型別 空型別 void 構造型別 陣列 結構體 列舉型別 a 列舉型別 列舉型別定義的一般形式 enum 列舉型別名 在列舉值中應羅列出所有可用值。這些值也稱為列舉單元。列舉型別是一種基本型別,而不是一種構造型別,因為它不能再分解任...

C enum列舉型別

列舉型別 enumeration 是c 中的一種派生資料型別,它是由使用者定義的若干列舉常量的集合。如果乙個變數只有幾種可能的值,可以定義為列舉 enumeration 型別。所謂 列舉 是指將變數的值一一枚舉出來,變數的值只能在列舉出來的值的範圍內。建立列舉,需要使用關鍵字enum。列舉型別的一般...

C enum(列舉)工具

趙者也 關注 c 的 enum 工具提供了另一種建立符號常量的方式,這種方式可以替代 const。它還允許定義新型別,但必須按嚴格的限制進行。使用 enum 的語法與使用結構體相似。enum demoenum 預設情況下,將整數值賦給列舉量,第乙個列舉值為 0,第二個為 1,依次類推。可以通過顯式地...