Jeśli nie używasz typedef
, jest to trudne. Na przykład, rozważmy signal()
od standardu C:
extern void (*signal(int, void (*)(int)))(int);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Korzystanie typedefs, łatwiej jest:
typedef void Handler(int);
extern Handler *signal(int, Handler *);
void handler(int signum)
{
...
}
if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, handler);
Zauważ, że dla funkcji signal()
, to zwykle wystarczy użyć <signal.h>
i niech się martwić o systemie ogłaszając to.
Prosimy nie dodawać swoje nazwisko na końcu postów, ponieważ twój podpis pojawi się automatycznie na końcu postów! http://stackoverflow.com/faq#signatures –
Udoskonaliłem tytuł i tekst, aby były bardziej zrozumiałe. Możesz oczywiście go cofnąć, jeśli nie podoba ci się zmiana, ale proponuję, abyś rozważył tę różnicę ostrożnie, ponieważ może to trochę wyjaśnić problem. – dmckee