01/10/2018, 09:47

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!

rogp10 viết 11:55 ngày 01/10/2018

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

Vinh viết 12:01 ngày 01/10/2018

em vẫn chưa hiểu lắm anh ,anh ví dụ cái được ko ạ

Văn Dương viết 11:53 ngày 01/10/2018

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ỉ

*grab popcorn* viết 11:49 ngày 01/10/2018

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;
}
2D_team_free_online_Education viết 11:56 ngày 01/10/2018

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

Bài liên quan
0