30/09/2018, 16:21
Cách khai báo struct và typedef struct?
Cho mình hỏi, kiểu khai báo này
typedef struct NODE
{
int Key;
struct NODE *pNext;
} STACK;
STACK *p;
Và kiểu khai báo này
struct NODE
{
int Key;
NODE *pNext;
};
struct STACK
{
NODE *top;
};
Có gì khác nhau không vậy?
Bài liên quan
Trong C++, nên dùng cách này
Trong C, nếu bạn lười thì có thể viết như thế này
Bởi vì nếu bạn thực sự code C, bạn sẽ hiểu rằng bạn sẽ phải khai báo một
struct NODE
như sauTrong C++, sử dụng typedef để định nghĩa một kiểu dữ liệu mới, sử dụng trong struct gần như là vô ích.
Em trong cái vụ khai báo struct chưa bao giờ dùng typedef, và thật sự cũng không muốn dùng. typedef struct về cơ bản chỉ là đổi tên cho nó thôi. Thế tại sao lại không đặt cho nó cái tên như ý mình ngay từ đầu?
P/s: Em thấy hồi đó em khai báo như này
mà IDE vẫn chấp nhận và biên dịch được. Vậy là do IDE hiểu đc hay việc thêm chữ struct ở trước là không cần thiết a @ltd ?
Còn tùy thuộc vào bạn dùng struct trong C hay C++. Nó khác nhau đó.
Nếu em code C++, đừng dùng typedef tràn lan vô tội vạ. Cách em đang làm là đúng.
Khai báo thế này hợp lý, vì em đang code C++.
Là do em đang tạo project C++, không phải project C. Nếu em tạo project C nó sẽ báo lỗi ngay.