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

Bài viết được sự cho phép của tác giả Trần Hữu Cương

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.

  Kiểu enum trong TypeScript: làm việc như thế nào, sử dụng ra sao
  1001 Tips: Con trỏ và hàm (Pointer & Function) trong C++

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++)

C++ tuyển dụng nhiều vị trí, lương cao, ứng tuyển ngay!

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.

Bài viết gốc được đăng tải tại codecute.com

Có thể bạn quan tâm:

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev