Ai đó có thể giải thích mã dưới đây? Tôi mới làm quen với C và đang cố gắng tìm ra nó. Tại sao chúng ta lại có queueNodeT ở cuối?
typedef char queueElementT;
cấu trúc typedef hàng đợiNodeTag {
phần tử queueElementT;
cấu trúc hàng đợiNodeTag *next;
} queueNodeT;
queueNodeT là tên của loại mà câu lệnh typedef đang cố gắng tạo.
Một cách khác để chỉ định là:
cấu trúc hàng đợiNodeTag {
...
};
typedef cấu trúc hàng đợiNodeTag hàng đợiNodeT;
Trong C (ngược lại với C++), "struct queueNodeTag" chỉ định nghĩa một cấu trúc có tên là "queueNodeTag". Trong C++ [bạn nên biết], điều này cũng sẽ xác định một loại gọi là "queueNodeTag"
Khi tạo một biến con trỏ tới một cấu trúc, cách sử dụng sẽ ngắn hơn một chút:
queueNodeT *my_pointer;
So sánh:
cấu trúc hàng đợiNodeTag *my_pointer;
Dấu "T" chỉ là quy ước mã hóa để chỉ ra rằng đó là tên loại chứ không phải biến. Bạn có thể sử dụng những người khác. Của tôi là:
cấu trúc mystructname {
...
};
typedef struct mystructname mystructname_t;
typedef mystructname_t *mystructname_p;
Sử dụng mystructname_p bạn có thể thay đổi:
struct mystructname *my_pointer;
mystructname_t *my_pointer;
进入:
mystructname_p my_pointer;
"_t" khá phổ biến. "_p" là quy ước của tôi, tuy nhiên, tôi tin rằng các quy ước khác định nghĩa con trỏ tới các loại là "p
”, ví dụ: “pMystructName”, tôi thích sử dụng ký hiệu hậu tố [và “rắn” cho ký hiệu này thay vì ký hiệu “camelcase” trong ví dụ của bạn].
Tôi là một lập trình viên xuất sắc, rất giỏi!