我是Java開發人員,出於某種原因,我正在研究C。問題是我在閱讀函數定義時遇到了一些麻煩。你能給我一個這個例子的提示:閱讀C中的函數定義
void (*signal(int sig, void(*func)(int)))(int)
謝謝你們!
我是Java開發人員,出於某種原因,我正在研究C。問題是我在閱讀函數定義時遇到了一些麻煩。你能給我一個這個例子的提示:閱讀C中的函數定義
void (*signal(int sig, void(*func)(int)))(int)
謝謝你們!
您應該瞭解right-to-left rule。這個頁面包含很好的例子。
signal
被一個函數取作爲參數:
int
和返回沒什麼並返回一個指向funcction服用int
和返回什麼。
func是一個函數指針,它接受一個int並返回void。
信號是一個函數,它接受一個int和一個像func這樣的指針,並返回一個類似於func的指針。
那就是:你指定哪個信號處理器(FUNC)關聯到信號(SIG ),以及該函數返回一個信號處理器(前一),你可以在一些地方保存。
「cdecl」的實例。我認爲它可用於Linux或源碼可以下載&內置。
cdecl> explain char *(*fptab[])()
declare fptab as array of pointer to function returning pointer to char
cdecl>
在網上查找'cdecl'。 BTW信號是更復雜的例子之一。 :-) – 2011-02-11 13:07:18
非常感謝很多人!實際上並不認爲一個函數可以以這種方式返回一個函數。 Thanksss! – 2011-02-11 13:34:19