PDA

View Full Version : [C] Kiểu Enum, help?


Kevin Hoang
17-11-2006, 05:39 PM
Dreaminess vẫn dùng cái kiểu như:

char *months[]={"Giêng","Hai","Ba","Tư","Năm","Sáu","Bảy","Tám","Chín","Mười","Một","Chạp"};
Or: char months[][]={"Giêng","Hai","Ba","Tư","Năm","Sáu","Bảy","Tám","Chín","Mười","Một","Chạp"};

Để xử lý các bài cần đến việc Liệt kê. Nhưng hôm nay nhớ lại là trong Pascal có cung cấp một kiểu Enum sử dụng tiện lợi hơn nhiều, mà trong C không hề thấy nói tới, không biết là C có không nhỉ?

Dreaminess đã thử
#define months {"Giêng","Hai","Ba","Tu"}

Nhưng không ổn. (:-)??

Có ai đã thử làm chưa nhỉ?

nguyentuan2
17-11-2006, 06:47 PM
char *months[]={"Giêng","Hai","Ba","Tư","Năm","Sáu","Bảy","Tám", "Chín","Mười","Một","Chạp"};
Or: char months[][]={"Giêng","Hai","Ba","Tư","Năm","Sáu","Bảy","Tám", "Chín","Mười","Một","Chạp"};



cái mà Dreaminess ghi ở trên là mảng, tập hợp (cái này không có cách nào khác thay thế đâu, muốn định liệt kê mảng hằng chỉ có cách như thế thôi). Còn enum là hoàn toàn khác, enum là định nghĩa kiểu mới, định nghĩa kiểu khác với định nghĩa mảng nha. kiểu enum là kiểu liệt kê. kiểu enum tương tự như integer, và có thể ép kiểu lẫn nhau với integer

ví dụ


enum tháng{Giêng,Hai,Ba,Tư,Năm,Sáu,Bảy,Tám, Chín,Mười,Một,Chạp};
//lúc này thì Giêng,Hai,Ba,Tư,Năm,Sáu,Bảy,Tám, Chín,Mười,Một,Chạp giống như là số integer, chứ không phải là chuỗi

Túm lại là làm như bạn là ổn rồi, không cần phải lăn tăn gì nữa

Kevin Hoang
17-11-2006, 06:54 PM
Cảm ơn anh đã trả lời, thường thì em vẫn làm vậy, nhưng em muốn biết trong C có kiểu Enum không thôi. Xem lại mấy cuốn về C nhưng find không có thấy, không biết có bị quên không nữa. Còn kiểu Enum thì em hiểu, nên tự nhiên nảy ra ý định thử giống như ở Pascal, nhưng mà không được.

lqkhoi
21-11-2006, 08:23 AM
enum có trong C.

Cách viết:

typedef enum LIST_t
{
a=5,
b,
c,
d,
}LIST;

Với cách viết đó b = 6 và c = 7.

cách sử dụng giống như xài struct.

Kevin Hoang
22-11-2006, 03:41 PM
Cảm ơn các anh, bữa trước tìm không kỹ nên không thấy. Bữa nay em thấy nó rồi. (bótay.com)