Nếu bạn tránh sử dụng typedef
, thật khó. Ví dụ, hãy xem xét signal()
từ tiêu chuẩn C:
extern void (*signal(int, void (*)(int)))(int);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Sử dụng typedefs, nó là dễ dàng hơn:
typedef void Handler(int);
extern Handler *signal(int, Handler *);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Lưu ý rằng đối với signal()
chức năng, bạn sẽ thường chỉ cần sử dụng <signal.h>
và để cho những lo lắng hệ thống về tuyên bố nó.
Nguồn
2012-01-04 06:25:36
Xin đừng thêm tên của bạn ở cuối của các bài đăng vì chữ ký của bạn sẽ tự động xuất hiện ở cuối bài đăng! http://stackoverflow.com/faq#signatures –
Tôi đã tinh chỉnh tiêu đề và văn bản của bạn nhằm nỗ lực làm cho chúng dễ hiểu hơn. Dĩ nhiên, bạn có thể tự do chuyển đổi lại nếu bạn không thích những thay đổi này, nhưng tôi khuyên bạn nên xem xét sự khác biệt một cách cẩn thận vì nó có thể làm rõ vấn đề một chút. – dmckee