Если вы избегаете использования typedef
, это сложно.Например, рассмотрим signal()
из стандарта C:
extern void (*signal(int, void (*)(int)))(int);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Используя typedefs, это проще:
typedef void Handler(int);
extern Handler *signal(int, Handler *);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Обратите внимание, что для функции signal()
вы обычно простоиспользуйте <signal.h>
и позвольте системе беспокоиться об объявлении этого.