Kiểu liệt kê (
enum
)
Kiểu dữ liệu liệt kê dùng để tạo ra các kiểu dữ liệu chứa một cái gì đó hơi đặc
biệt một chút, không phải kiểu số hay kiểu kí tự hoặc các hằng
true
và
false
.
Dạng thức của nó như sau:
enummodel_name{
value1,
value2,
value3,
.
.
} object_name;
Ví dụ, chúng ta có thể tạo ra một kiểu dữ liệu mới có tên
color
để lưu trữ các
màu với phần khai báo như sau:
enum colors_t {black, blue, green, cyan, red, purple, yellow,
white};
Chú ý rằng chúng ta không sử dụng bất kì một kiểu dữ liệu cơ bản nào trong
phần khai báo. Chúng ta đã tạo ra một kiểu dữ liệu mới mà không dựa trên bất
kì kiểu dữ liệu nào có sẵn: kiểu
color_t
, những giá trị có thể của kiểu
color_t
được viết trong cặp ngoặc nhọn
{}
. Ví dụ, sau khi khai báo kiểu liệt kê, biểu
thức sau sẽ là hợp lệ:
colors_t mycolor;
mycolor = blue;
if (mycolor == green) mycolor = red;
Trên thực tế kiểu dữ liệu liệt kê được dịch là một số nguyên và các giá trị của
nó là các hằng số nguyên được chỉ định. Nếu điều này không đựoc chỉ định, giá
trị nguyên tương đương với phần tử đầu tiên là
0
và các giá trị tiếp theo cứ thế
tăng lên 1, Vì vậy, trong kiểu dữ liệu
colors_t
mà chúng ta định nghĩa ở trên,
white
tương đương với
0
,
blue
tương đương với
1
,
green
tương đương với 2 và
cứ tiếp tục như thế.