mọi người cho em hỏi (typedef struct) vs (struct) ko thôi thì nó khác nhau như thế nào ạ?
thank all!
Phân biệt sự khác nhau giữa (typedef struct) vs (struct)
Khác nhau xa. typedef
trong C++ chỉ dùng khi bạn muốn tên ngắn hay portable (nhưng cái này chắc chắn sẽ nằm trong quy tắc nội bộ vì đặt tên lung tung là đụng).
Bình thường bạn không cần ghi struct T pod;
mà bạn chỉ ghi T pod;
.
em vẫn chưa hiểu lắm anh ,anh ví dụ cái được ko ạ
typedef struct để khai báo/ định nghĩa một kiểu struct.
struct để khai báo 1 biến dạng struct.
Nói vậy chứ trước giờ không dùng struct sao vẫn khai báo được biến kiểu struct nhỉ
Nếu ở C++ thì struct ~ typedef struct và khỏi cần typedef cũng đc.
Còn C thì giúp nó đỡ phải ghi thêm kw struct mỗi khi khai báo biến.
Như code mẫu C dưới bây bị lỗi
struct a {
int b;
};
int main(void) {
a c; // báo lỗi ở dòng này
return 0;
}
Đúng phải là
struct a c;
Tuy nhiên ghi vậy dài quá, ngta dùng typedef giúp định nghĩa kiểu lại, từ đó ngắn hơn
typedef struct a {
int b;
} a; //định nghĩa struct a thành a
int main(void) {
a c; // không lỗi nữa
return 0;
}
theo mình thì typedef là để định dạng lại kiểu struct , hiểu nôm na là để định nghĩa lại nó cho các trình biên dịch thuần C có thể hiểu và thực thi , cũng là cách rút gọn mỗi lần khai báo biến dữ liệu kiểu cấu trúc