首页 > 代码库 > 函数名做函数参数

函数名做函数参数

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,第二个已经解释过了。

函数名做函数参数