C enum (Liệt kê)

Trong hướng dẫn này, bạn sẽ học về enum (liệt kê) trong lập trình C với sự trợ giúp của các ví dụ.

Trong lập trình C, kiểu liệt kê (còn được gọi là enum) là kiểu dữ liệu bao gồm các hằng số tích phân. Để xác định enums, enumtừ khóa được sử dụng.

 cờ enum (const1, const2,…, constN); 

Theo mặc định, const1 là 0, const2 là 1, v.v. Bạn có thể thay đổi giá trị mặc định của các phần tử enum trong khi khai báo (nếu cần).

 // Thay đổi giá trị mặc định của hằng số enum enum suit (câu lạc bộ = 0, kim cương = 10, trái tim = 20, bích = 3,);

Khai báo kiểu được liệt kê

Khi bạn xác định một kiểu enum, bản thiết kế cho biến sẽ được tạo. Đây là cách bạn có thể tạo các biến kiểu enum.

enum boolean (false, true); enum boolean kiểm tra; // khai báo một biến enum

Tại đây, một kiểm tra biến của loại enum booleanđược tạo.

Bạn cũng có thể khai báo các biến enum như thế này.

 enum boolean (false, true) kiểm tra; 

Ở đây, giá trị của falsebằng 0 và giá trị của truebằng 1.

Ví dụ: Kiểu liệt kê

 #include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; ) 

Đầu ra

 Ngày 4

Tại sao enums được sử dụng?

Một biến enum chỉ có thể nhận một giá trị. Đây là một ví dụ để chứng minh điều đó,

 #include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; ) 

Đầu ra

 Kích thước của biến enum = 4 byte

Ở đây, chúng tôi nhận được 4 vì kích thước của intlà 4 byte.

Điều này làm cho enum trở thành một lựa chọn tốt để làm việc với các cờ.

Làm thế nào để sử dụng enum cho cờ?

Chúng ta hãy lấy một ví dụ,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Giả sử bạn đang thiết kế một nút cho ứng dụng Windows. Bạn có thể đặt cờ ITALICS, BOLD và UNDERLINE để làm việc với văn bản.

Có một lý do tại sao tất cả các hằng số tích phân là lũy thừa của 2 trong mã giả trên.

 // Trong ITALICS nhị phân = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Vì các hằng số tích phân là lũy thừa của 2, bạn có thể kết hợp hai hoặc nhiều cờ cùng một lúc mà không trùng lặp bằng cách sử dụng bitwise OR | nhà điều hành. Điều này cho phép bạn chọn hai hoặc nhiều cờ cùng một lúc. Ví dụ,

 #include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; ) 

Đầu ra

 5

Khi đầu ra là 5, bạn luôn biết rằng chữ in đậm và gạch chân được sử dụng.

Ngoài ra, bạn có thể thêm cờ theo yêu cầu của mình.

 if (myDesign & ITALICS) (// mã in nghiêng)

Ở đây, chúng tôi đã thêm chữ in nghiêng vào thiết kế của mình. Lưu ý, chỉ mã cho chữ in nghiêng được viết bên trong ifcâu lệnh.

Bạn có thể hoàn thành hầu hết mọi thứ trong lập trình C mà không cần sử dụng phép liệt kê. Tuy nhiên, chúng có thể khá tiện dụng trong một số trường hợp nhất định.

thú vị bài viết...