signal函數

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型的指正類似,只不過這裏的指針指向的是一個函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章