void (*signal(int sig, void (*func)(int)))(int);
or in the equivalent but easier to read typedef'd version:
typedef void (*sig_t) (int);
sig_t signal(int sig, sig_t func);
In, say, Go, this would be func signal(sig int, newFunc func(int)) func(int)
which imo is cleaner (it's clear that the second argument and return value have the same type, without having to use a typedef) without sacrificing power.No comments yet.