【関数ポインタ】

431 ワード

今日signal標準インタフェースを見て、定義が難しいです.以下のようにします.
void (*signal(int sig_num,void (*handler)(int)))(int)   

このインタフェースは分割できます
void (*fp)(int)
fp = signal(int sig_num,void (*handler)(int))

ここを見ると、Cの関数ポインタの定義はもともと反人間的だが、何事も一見怖くて、そうではない.
typedef void (*fp)(int);
fp signal(int sig_num,void (*handler)(int));

すなわちsignal関数の戻り値は関数ポインタであり、パラメータはintと関数ポインタである.