Gần đây tôi đã bắt đầu nghiên cứu về cấu trúc và con trỏ nhưng có một cái gì đó tôi không hoàn toàn hiểu về thiết kế của một struct
. Tôi hiểu tuyên bố của số struct
là typedef struct Alias
và nội dung của nó nhưng tôi không hiểu Get_noAllyp
và *no_getOf
ở cuối tuyên bố. Họ là ai? Tôi cũng không thể tìm được nguồn tốt.Cách cấu trúc được gõ vào nhiều tên?
typedef struct Alias {
char *s_a_name;
char **s_aliases;
short *s_dumr;
int s_get_sum;
}Get_noAllyp, *no_getOf; /*Here, I don't understand this one.
Where did these two variables come from?
And one of them is a pointer.*/
Không sử dụng cả hai thẻ 'C' và' C++ '. Chúng là các ngôn ngữ khác nhau và chúng có các quy tắc khác nhau (mặc dù chúng có nhiều điểm chung). – axiac
Mã được đăng đang tạo hai loại (Get_noAllyp và * no_getOf) Tuy nhiên, tên thẻ cấu trúc là 'Bí danh' để hai loại đó có tên rất sai. Các tên kiểu gây hiểu nhầm sẽ dẫn đến hiểu lầm, lỗi mã, vv Nói chung, không bao giờ gõ một định nghĩa struct. Nó là rõ ràng hơn để viết 'struct Alias' hoặc 'struct Alias *' hơn là cố gắng nhớ rằng 'no_getOf' thực sự là một con trỏ và thực sự là một con trỏ đến một cấu trúc Alias. Typedef'ing một cấu trúc clutters mã, dẫn đến mis-hiểu, và clutters không gian tên trình biên dịch. – user3629249
@ user3629249 Vâng cảm ơn bạn sir! Nhưng đoạn mã chỉ là một ví dụ thuần túy về cách một số cấu trúc có thể được nhìn thấy trong mã nguồn do đó rất khó chịu nếu cấu trúc có một số tên crappy ở cuối của nó như được đưa ra ở trên. Tôi hiểu rằng các tên cấu trúc như vậy không phải là một thực hành tốt và rất khó hiểu. Nhưng một lần nữa, tôi vẫn cần phải làm rõ mặc dù nó là _Alias và * pAlias :) –