Enum (Enumeration) là kiểu dữ liệu người dùng định nghĩa, gán tên cho các hằng số nguyên, làm code dễ đọc, dễ bảo trì. Từ khóa enum.
Cú pháp
enum enum_name { const1, const2, ... };
Mặc định: const1 = 0, const2 = 1, ... Tự tăng 1. Có thể gán giá trị tùy ý.
Khai báo biến enum
enum week { Mon, Tue, Wed, Thu, Fri, Sat, Sun };
enum week today; // Cach 1
enum week { Mon, Tue, ... } day; // Cach 2 (khai báo kèm)
Ví dụ
#include <stdio.h>
enum week { Mon=10, Tue, Wed, Thu, Fri=10, Sat=16, Sun };
enum day { Mond, Tues, Wedn, Thurs, Frid=18, Satu=11, Sund };
int main() {
printf("Enum week: %d %d %d %d %d %d %d\n",
Mon, Tue, Wed, Thu, Fri, Sat, Sun);
printf("Enum day (mac dinh): %d %d %d %d %d %d %d\n",
Mond, Tues, Wedn, Thurs, Frid, Satu, Sund);
return 0;
}
Kết quả
Enum week: 10 11 12 13 10 16 17
Enum day (mac dinh): 0 1 2 3 18 11 12
Giải thích:
week:Mon=10,Tue=11,Wed=12,Thu=13,Fri=10(gán lại),Sat=16,Sun=17.day: Mặc định từ 0:Mond=0,Tues=1,Wedn=2,Thurs=3,Frid=18,Satu=11,Sund=12.
Ưu điểm
- Thay số magic bằng tên có ý nghĩa.
- Type safety (một số compiler cảnh báo gán sai enum).
- Dễ debug (debugger hiển thị tên enum).
- Namespace riêng (C++11
enum classmạnh hơn).