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++