của nó dễ dàng hơn để đọc Box b;
hơn struct boxtype b;
typedef struct _entry{
char *name;
int id;
} Entry, *EntryP;
Ưu điểm:
Ở phía trên typedef
, cả Entry
& EntryP
được định nghĩa ngoài struct _entry
.
Vì vậy, EntryP firstentry
có thể được sử dụng thay cho struct _entry *firstentry
và đơn giản hơn để phân tích cú pháp.
Lưu ý: Tên cấu trúc không giống như của nó nên là typedef
ined, nhưng rõ ràng là dễ đọc hơn. Ngoài ra, việc sử dụng Entry *
và EntryP
hoàn toàn phụ thuộc vào người dùng.
Nguồn
2010-04-09 07:16:56
Trong cuốn sách * Lập trình C chuyên nghiệp *, Peter van der Linden làm cho trường hợp typedefs cho cấu trúc là vô ích và bạn không nên bận tâm. Tôi thích điều này. Tất cả typedef là nó giúp bạn viết 'struct' ở một vài nơi như declaratations và prototype. Nó không đáng để obfuscation. Tôi muốn ngay lập tức biết khi nào tôi phải sử dụng '->' hoặc '.'. Typedefs làm cho điều này khó hơn. – Jens