這是一個語法問題。我碰到線:'void(* old_sigint_handler)(int)'是什麼?
void (*old_sigint_handler)(int);
而我不知道它在做什麼。這看起來像是沒有變量名稱的三種類型的連接。我希望澄清!
這是一個語法問題。我碰到線:'void(* old_sigint_handler)(int)'是什麼?
void (*old_sigint_handler)(int);
而我不知道它在做什麼。這看起來像是沒有變量名稱的三種類型的連接。我希望澄清!
void (*old_sigint_handler)(int);
這定義old_sigint_handler
是一個指針,指向這需要一個int
並返回void
,即,沒有值的函數。各地old_sigint_handler
的括號是必需的還有這裏的以下內容:
void *old_sigint_handler(int);
聲明的函數old_sigint_handler
這需要一個int
並返回一個指針void
類型。這是因爲C
中的優先規則。括號裹緊indentifier old_sigint_handler
比*
使其成爲一個函數而不是指針的功能。閱讀這個來精神分析複雜的C聲明 - Clockwise/Spiral Rule。
你是低調者,我希望你能教我做錯了什麼,而不僅僅是低調。沒有意義。 – ajay
是一個函數指針,一個函數簽名void (int)
那是名爲old_sigint_handler變量聲明一個變量,可容納一個函數指針,以接受一個int並沒有返回值(空)的功能。
它的命名函數指針的聲明old_sigint_handler採用單個int和沒有返回。
這是一個函數指針聲明old_sigint_handler
函數,該函數需要一個int
並返回void
。
利用cdecl知道它是什麼樣的聲明完全一樣。它是C -> English
declare old_sigint_handler as pointer to function (int) returning void
還,鏈接是有用 –
呀,偉大的鏈接。 – user2316667
函數指針,以接受一個'int'並返回'功能void' – user2485710
它的指針,需要一個'int'說法,也沒有明確的返回功能。 [CDECL(http://cdecl.org/)是一個很好的資源,以澄清這種聲明 – simonc
的是在main方法的中間雖然。 – user2316667