Tôi đang nghiên cứu các ví dụ mã từ giáo sư của mình để làm quen tốt hơn với các cấu trúc dữ liệu được liên kết.Mục đích của nút "đầu tiên" trong khai báo: "typedef struct node {- - -} Node;"?
Trong ví dụ liên kết-list.c chúng tôi giáo sư định nghĩa một loại Node như sau:
typedef struct node {
int data;
struct node *next;
} Node;
điểm của chữ thường nút là gì? Tôi đã có ấn tượng rằng bạn chỉ có thể viết, ví dụ:
typedef struct {
int data;
struct node *next;
} Node;
và sau đó sử dụng Node làm loại riêng của nó. Liệu nó có liên quan đến thực tế là nếu bạn không bao gồm một nút trường hợp thấp hơn thì khi trình biên dịch đánh giá mã, nó sẽ không thể hiểu được ý nghĩa của "struct node * next"?
Nếu không, nó sẽ là cấu trúc chưa đặt tên. Lưu ý rằng 'Node' không phải là tên vì nó chỉ là một hack typedef để tránh sử dụng' struct node' ở khắp mọi nơi. – Mysticial
Bạn có ý nghĩa gì khi hack? Nó là một phần của ngôn ngữ chính nó để có thể làm Node thay vì nút struct, phải không? –
Đó là một hack thường được sử dụng mà không ai coi đó là một hack nữa. – Mysticial