我想了解哪些有如下的代碼:C - 使用不帶參數的參數調用函數聲明?
void terminate_pipe(int);
code code code...
struct sigaction new_Sigiterm;
new_Sigiterm.sa_handler = terminate_pipe;
我的問題是:
什麼是調用這樣的功能是什麼意思?是否 只是把
NULL
作爲參數?這是無效的,所以
new_Sigiterm.sa_handler
將是NULL
不管是什麼?
謝謝。
函數沒有被調用;一個沒有括號的函數名通常意味着你正在處理一個函數_pointer_。你問題中的代碼只是將'terminate_pipe'的地址賦給'struct sigaction'中的'sa_handler'字段。在這裏看到更多的信息:http://stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work – szczurcio
我不認爲這是這裏的情況。該函數是: 空隙terminate_pipe(INT){ *代碼* } 其絕對函數的簽名。你爲什麼認爲它是函數指針? –
的確如此。請看看我與你聯繫的問題(和答案)。 – szczurcio