列舉 enum 是把一些常數值,以容易識別的 id 定義之,如此在程式中呈現,將提高程式的可讀性。

例如:
在電子工程中,使用電阻色碼為:
0 (黑)、1 (棕)、2 (紅)、3 (橙)、4 (黃)、
5 (綠)、6(藍)、7(紫)、8(灰)、9(白)

若有一變數 x 記錄電阻色碼值為 2,相信不容易馬上看出是紅色,但若色碼值為 red 就能很快看懂 x 的電阻色碼。

enum 之定義、宣告、使用,與 struct 一樣,大略有三種方式。

enum 定義方式:
enum 列舉名稱{
    列舉常數1,
    列舉常數2,
    ..................
    列舉常數n
}變數名1,變數名1,...,變數名n;
//變數宣告為 enum 者可以在此宣告

範例:
enum color{
black, Brown, Red,
Orange, Yellow, Green,
Blue, Violet, Gray, White
}a,b;


typedef enum 列舉名稱 另一個列舉名稱;

enum 列舉名稱{
    列舉常數1,
    列舉常數2,
    ..................
    列舉常數n
}變數名1,變數名1,...,變數名n;

範例:
typedef enum color Color;

enum color{
black, Brown, Red,
Orange, Yellow, Green,
Blue, Violet, Gray, White
}a,b;
 

typedef enum 列舉名稱{
    列舉常數1,
    列舉常數2,
    ..................
    列舉常數n
}另一個列舉名稱;

範例:
typedef enum color{
black, Brown, Red,
Orange, Yellow, Green,
Blue, Violet, Gray, White
}Color;
enum 宣告方式:
enum color c;
 
enum color c;
Color d;
 
enum color c;
Color d;
enum 使用方式:
a.x=2;
b.y=3;
c.x=7;
a.x=2;
b.y=3;
c.x=7;
d.y=-10;
c.x=1;
d.y=-6;