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.
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ả:
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:
- Kiểu bool, boolean trong lập trình C/C++ (Code ví dụ)
- Kiểu enum trong TypeScript: làm việc như thế nào, sử dụng ra sao
- Một design pattern trong C++ giúp bảo trì code ngon ngọt
Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev