CHPV C++ | Tại sao thỉnh thoảng trong code thường bắt gặp (typedef struct) chứ không phải (struct)

MỤC LỤC:
Ảnh: Tại sao thỉnh thoảng trong code thường bắt gặp (typedef struct) chứ không phải (struct)

Ví dụ:

typedef struct a {
	int b;
} A;
mà tại sao không viết như sau luôn
struct A {
	int b;
};

Trong thực tế, khi maintain lại một số mã nguồn cũ C++, thỉnh thoảng bạn sẽ nhìn thấy trường hợp người ta dùng typedef để định nghĩa lại tên của một struct với một tên y hệt. Có người nói rằng đấy là tùy phong cách code, chứ không cần khai báo typedef mà định nghĩa thằng struct với tên như vậy là được

Nếu ở C++ thì struct tương đương typedef struct và  cần typedef cũng đc.

Còn ngôn ngữ C thì giúp nó đỡ phải ghi thêm keyword 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; // dòng này sẽ báo lỗi
	return 0;
}

Đúng phải là

struct a c;

Tuy nhiên để tiện dụng hơn ngta dùng typedef giúp định nghĩa kiểu lại, giúp việc triển khai ngắn hơn, đỡ dài dòng hơn

typedef struct a {
	int b;
} a; //định nghĩa struct a thành a

int main(void) {
	a c; // không bị lỗi nữa
	return 0;
}

TuanTiTien++

Author:

Tôi là Tuấn Anh, một lập trình viên C++, hiện tại đang làm việc với Qt Framework. Giờ đã là bố của một thanh niên nhỏ, gần đây tôi thấy mình cần sống có trách nhiệm hơn nữa. : ]] Tôi cảm thấy nếu tôi không có nơi nào đó để ghi lại, tôi sẽ quên mất nhiều thứ. Dấu chân trên cát cũng vậy, nếu ta không chụp ảnh nó lại, rồi nó cũng sẽ bị gió làm mờ đi dần rồi mất hút hẳn. Cảm ơn anh em đã ghé qua và đọc những gì tôi viết. Hữu duyên thiên lý Ngô tương nặng, à nhầm Năng tương ngộ. : ]] Thân ái 3000!
© Giao diện website thiết kế bởi TuanTiTien.com