引自:http://blog.csdn.net/crfoxzl/article/details/2147744
void (*func)(int) 知道这样定义这个函数什么意思么?
先解释void (*func)(int):
void func()->void func(int)->void *func(int)->void (*func)(int)
上面的图示能看明白吧?func是一个函数指针,它的返回类型为void,它所指向的函数接收一个int型的参数。若是写成void *func(int)则变成了:func是一个函数,它的返回类型是void 类型的指针,它接受一个int型参数。
所以void (*signal(int sinno,void(*func)(int)))(int)意思是:
signal是一个函数指针,它的返回类型是void,它接收一个int类型的参数;不过这个指针是另一个函数的返回值,它接收2个参数,第一个是int,第二个已经解释过了。