In the early days of C, pointers were plain integers. Relics of this approach can still be found in vintage APIs and legacy code. For instance, the ANSI C
typedef void(*handler)(int signum);
handler is a pointer to a function that takes int and returns void. It is used as the second parameter of the signal() function:
void * signal(int signum, hanlder); // from
Normally, handler points to a user-defined function to be called when a certain signal is raised. However, it may also take two special values: SIG_IGN and SIG_DFL which are in fact integer values (both are defined in