void (*set_signal(int signo,void(*func)(int)))(int)这个函数各个参数是什么意思??

2025-03-10 05:39:48
推荐回答(3个)
回答1:

1. 这是声明了一个函数 set_signal;
2. set_signal 函数有两个输入参数,分别是 int signo,及函数指针 func,该指针所指的函数,其输入参数是int,无返回值;
4. 函数 set_signal 的返回值是个函数指针,该指针所指的函数,其输入参数是int,无返回值。

回答2:

func是一个函数指针,它有一个int型的参数。

set_signal的返回值是一个函数指针, 这个函数无返回值有一个int型参数。(抄楼上的)
它有两个参数。第一个参数是int型,第二个参数是一个回调函数,这个函数声名格式必须为:void xxx(int);

回答3:

推荐答案讲得很详细了
其实解这样的题目必须懂得函数指针和指针的指针的概念,也是指针的高级应用
有关这些概念看看 c现代编程 这本书 在 爱问 可以下载,是本不错的C入门和提高书,现在已经有第二版(暂时找不到)
另外还有解这样的题目步骤是:
1.从最里层开始向外扩展,也就是()最里层;也可相反。
2.明白函数指针和指针的指针,返回指针的概念。
3.最简单的步骤是看见()是函数,[ ]数组。
如void (*set_signal(int signo,void(*func)(int)))(int)函数,拆开来看(*set_signal(int signo,void(*func)(int)))可以看成是指针,就是指向该函数。再拆*set_signal(int signo,void(*func)(int))也是函数,int signo,void(*func)(int)就是参数 ,*set_signal 返回值是个函数指针 int 类型,void(*func)(int)就是函数指针,这样就是指针的复合应用。
详细的 c现代编程 书有介绍

另外补充一点参数没有名字可以在写函数时补充,至于名字是什么没关系(但必须合符语法)