Phân biệt sự khác nhau giữa (typedef struct) vs (struct)

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!

1 Like

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;.

1 Like

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ỉ :grin:

1 Like

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;
}
18 Likes

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

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?