Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Enum (Liệt kê) trong C

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 class mạnh hơn).