關於c語言聲明 void (*signal(int sig, void(*func)(int)))(int)的理解

來源:互聯網
上載者:User

標籤:c++   c語言   類   左右規則   

剛開始看到這個 很蛋疼

還是慢慢理解

首先

void(*func)(int) 是一個指標 指向一個 返回值為void 參數為int的函數

是一個函數指標

具體理解http://zhidao.baidu.com/link?url=5GpEN7wPUhDlk_m-3drRHV9bGxv53tj818vtd1GIsyaVfyY1mdsFZfP6_2M_DNAfTQrh0qxMo_wXhK1CjIEPJK

 

然後看外圍的函式宣告 是不是和裡面有點類似

 

對的 裡面函數 簡寫為void   (*signal(xxx))   (int)
和裡面的函式宣告一樣 是一個無返回值 有一個int參數 返回的是一個函數指標 函數的類型為上面的類型所示

參考

中間部分 :
signal( int sig, void (*func)(int))
signal函數有2個參數,第一個是int,第二個是無返回值,帶一個int參數的函數指標

外圍:
void   (*signal(xxx))   (int)
signal函數返回的是一個函數指標,無返回值,有一個int參數

簡化:
typedef void Sigfunc(int)
Sigfunc就代表的就是一個 返回值是一個無返回值,有一個int參數的函數。

最後就成了這樣
Sigfunc *signal(int, Sigfunc*)

中國開源

http://www.oschina.net/question/171512_63027#tags_nav

左右規則

http://wenku.baidu.com/view/3891df0e844769eae009ed40.html

 

 

關於c語言聲明 void (*signal(int sig, void(*func)(int)))(int)的理解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.