关于C的申明,该怎么处理
关于C的申明
对于signal函数,原型如下:
void (*signal(int signum,void(* handler)(int)))(int);
我怎么感觉不像是个函数,倒像是个函数指针啊··
这个有点迷糊了,该怎么用诶?
------最佳解决方案--------------------
误人子弟啊。
signal是个函数,它的返回值是个函数指针。参数有两个,1个是整型数(信号编号),另一个也是函数指针。
这个函数是用来设置信号处理函数的,它的第二个参数是新的信号处理函数地址,它的返回值是旧的信号处理函数地址。
------其他解决方案--------------------
它的第二个参数以及返回值都是函数指针
通常不关心它的返回值
void foo(int sig) {}
signal(SIGINT, foo);
------其他解决方案--------------------
signal是函数指针
------其他解决方案--------------------
由内向外分析~~
------其他解决方案--------------------
我这样推:
void (*signal(int signum,pf))(int) //pf函数指针void(* handler)(int))
void (* Value_SignalFuctionReturn)(int) //Value_SignalFuctionReturn = signal(int signum,pf)
//依据()的优先级和结合方向
------其他解决方案--------------------
根据右左法,从最里面向外分析,所以signal是函数指针
------其他解决方案--------------------
signal是个函数指针带
(int signum,void(* handler)(int))参数
返回一个函数指针
带(int)参数
------其他解决方案--------------------
c 专家编程有讲
------其他解决方案--------------------
就是函数指针嘛,指针指向函数。
void (*signal(int signum,void(* handler)(int)))(int);
像这个void(* handler)(int))就是一个指向函数的指针;而void* handler(int)这个是一个函数,返回一个指针。
书上应该介绍的啊
------其他解决方案--------------------
++
它的第二个参数以及返回值都是函数指针
------其他解决方案--------------------
多写几个typedef.
对于signal函数,原型如下:
void (*signal(int signum,void(* handler)(int)))(int);
我怎么感觉不像是个函数,倒像是个函数指针啊··
这个有点迷糊了,该怎么用诶?
------最佳解决方案--------------------
误人子弟啊。
signal是个函数,它的返回值是个函数指针。参数有两个,1个是整型数(信号编号),另一个也是函数指针。
这个函数是用来设置信号处理函数的,它的第二个参数是新的信号处理函数地址,它的返回值是旧的信号处理函数地址。
------其他解决方案--------------------
它的第二个参数以及返回值都是函数指针
通常不关心它的返回值
void foo(int sig) {}
signal(SIGINT, foo);
------其他解决方案--------------------
signal是函数指针
------其他解决方案--------------------
由内向外分析~~
------其他解决方案--------------------
我这样推:
void (*signal(int signum,pf))(int) //pf函数指针void(* handler)(int))
void (* Value_SignalFuctionReturn)(int) //Value_SignalFuctionReturn = signal(int signum,pf)
//依据()的优先级和结合方向
------其他解决方案--------------------
根据右左法,从最里面向外分析,所以signal是函数指针
------其他解决方案--------------------
signal是个函数指针带
(int signum,void(* handler)(int))参数
返回一个函数指针
带(int)参数
------其他解决方案--------------------
c 专家编程有讲
------其他解决方案--------------------
就是函数指针嘛,指针指向函数。
void (*signal(int signum,void(* handler)(int)))(int);
像这个void(* handler)(int))就是一个指向函数的指针;而void* handler(int)这个是一个函数,返回一个指针。
书上应该介绍的啊
------其他解决方案--------------------
++
它的第二个参数以及返回值都是函数指针
------其他解决方案--------------------
多写几个typedef.