程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> typedef-socket 的signal函數看不懂

typedef-socket 的signal函數看不懂

編輯:編程綜合問答
socket 的signal函數看不懂

書上寫:"用typedef簡化函數原型
2~3 函數signal的正常函數原型因層次太多而變得很復雜:
void (*signal(int signo, void (*func)(int))) (int) ."
這是神馬函數?
比如void (*p) (int)我知道這叫函數指針, 可是括號裡的 *signal(int signo, void (*func)(int)) 是什麼東西? 是一個名字叫做*signal的函數? 這是語法錯誤吧?

最佳回答:


不是語法錯誤,這個函數很復雜,當時學的時候就沒有學太明白,我試著分析一下,我分析的不知道對不對。。。。。
給你個參考
從void(* func)(int) 開始看
這是一個函數指針,然後向右看,遇到括號往回返,一直看待再出現括號,
就是signal(int signo ,void(*func)(int))這是個函數,到這裡就是說void(*func)(int)這個函數指針是函數signal的一個參數,
與int signo 一起做signal函數的參數,
然後前面加* 變幻成你給的形式 void(*signal(int signo,void(*func)(int)))(int),應該是一個函數指針。

暈了~~~你參考一下吧,我真心的不確定。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved