解释void(*signal(int signo,void*(func)(int)))(int)

Abh*_*ogi 5 c linux signals function

请解释此类签名: void (*signal(int signo, void *(func)(int)))(int)

sth*_*sth 17

signal当typedef用于传递的函数指针时,函数的类型签名更加清晰:

typedef void (*sighandler_t)(int);
sighandler_t signal(int signo, sighandler_t func);
Run Code Online (Sandbox Code Playgroud)

sighandler_t是一个指向函数的指针,该函数接受int参数并且不返回任何内容.该signal函数将这样的函数指针作为其第二个参数.它还返回该类型的函数指针.