函数名为参数
请看下面这个例子
// 声明函数类型
typedef int (* test)(int);
// 函数要被包裹的位置
void startTest(test t, int k){
t(k);
}
// 编写实际要运行的函数。
int kk(int k){
printf("%d", k);
}
int main() {
startTest(&kk, 8);
return 0;
}
先解释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类型的参数;