Kiểu Enum trong C/C++ (Code ví dụ Enumeration trong C/C++)

Home » c/c++ » Kiểu Enum trong C/C++ (Code ví dụ Enumeration trong C/C++)

Kiểu Enum trong C/C++ (Code ví dụ Enumeration trong C/C++)

(Xem thêm: Tự học lập trình C, C++ qua code ví dụ)

Enum là gì?

Trong lập trình C/C++, Enum hay Enumeration là kiểu dữ liệu cố định, chỉ cho phép biến nhận số số giá trị nhất định nào đó.

Các giá trị enum có thể coi là một hằng số. Việc sử dụng enum giúp đảm bảo giá trị các biến chỉ nhận các giá trị mong đợi.

Ví dụ: Mình định nghĩa kiểu Enum là dayOfWeek và chỉ nhận các giá trị là ngày trong tuần (từ thứ 2 đến chủ nhật). Mỗi lần có tính toán tới ngày trong tuần thì mình dùng dayOfWeek sẽ giúp tránh các giá trị nằm ngoài khoảng từ thứ hai đến chủ nhât.

Tạo Enum trong C/C++

Để tạo enum trong C/C++ ta dùng từ khóa enum với cú pháp sau:

enum ten_enum {trang_thai_1: gia_tri_1, trang_thai_2: gia_tri_2,...}

Ví dụ:

#include<stdio.h> 
  
enum dayOfWeek{Mon=2, Tue=3, Wed=4, Thur=5, Fri=6, Sat=7, Sun=8}; 
  
int main() 
{ 
    enum dayOfWeek day; 
    day = Wed; 
    
    printf("Wednesday: %d \n",day); 
    
    printf("All day of week: %d - %d - %d - %d - %d - %d - %d", Mon, Tue, Wed, Thur, Fri, Sat, Sun); 

    return 0; 
}

Kết quả:

Kiểu Enum trong C/C++ (Code ví dụ Enumeration trong C/C++)

Trường hợp bạn không truyền giá trị cho các trạng thái trong enum thì nó sẽ tự nhận các giá trị tăng dần từ 0. Hoặc tăng dần theo giá trị của trạng thái trước đó.

Ví dụ:

enum dayOfWeek{Mon, Tue, Wed, Thur, Fri, Sat, Sun};

tương đương với:

enum dayOfWeek{Mon=0, Tue=1, Wed=2, Thur=3, Fri=4, Sat=5, Sun=6};

Hay

enum dayOfWeek{Mon, Tue=3, Wed=4, Thur=5, Fri=3, Sat, Sun};

Tương đương với:

enum dayOfWeek{Mon=0, Tue=3, Wed=4, Thur=5, Fri=3, Sat=4, Sun=5};

Lưu ý

Các trạng thái trong một enum có thể có giá trị bằng nhau.

Các trạng thái trong enum chỉ nhận giá trị là kiểu integer.

Trong cùng một phạm vi (scope), thì 2 enum không thể có trạng thái trùng tên.

 

Okay, Done!

References:

https://www.cprogramming.com/

Tags: