signal()函数
void(*signal(int signum,void(*handler)(int)))(int)
对于该函数的理解:
1.函数指针赋值
有函数:int fun(int);
有函数指针: int(*f)(int);
使函数指针 f 指向函数 fun():f=fun;//赋值时不带函数后面的括号这样指针 f 就指向函数 fun() 了
2. 原函数的理解
括号的优先级要高一些,所以这里定义的signal是一个函数指针,而该函数返回值为空,所需要的变量有两个,一个是int型的signum,第二个是和signal定义相同的的一个指向函数的函数指针,也就是处理该信号的handler()
3. 这里所使用的函数指针,都是指向该函数的入口地址,在进行编译的时候,就可以直接使用指针找到该函数,这个和指向int型,char型的指正类似,只不过这里的指针指向的是一个函数
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交