1. 程式人生 > >函式呼叫之回撥函式

函式呼叫之回撥函式

重新回到CSDN,工作以來寫第一個部落格。不碼程式碼,不追求高大上的專業術語,只求通俗的理解。

以前聽過回撥函式,也研究過,但由於沒有在實際中用過,所以也沒太懂,每次一聽到回撥函式這個詞,感覺很高大上,最近在工作上遇到了,而且被公司前輩廣而用之,這說明這個東西並不高大上,反而是一個很平常的知識點。

什麼是回撥函式:

第一,回撥函式肯定是一個函式,和普通的函式一樣(個人感覺“回撥”這個名字取得不好,不要被它迷惑了);

第二,回撥函式是最終還是會被你寫的一個函式呼叫,只是這個呼叫過程是間接的,並不像一個普通函式的直接呼叫過程。間接的呼叫體現在:你寫一個函式funA呼叫了一個系統或者公司其他前輩實現的一個介面函式

,這個介面函式的一個引數是一個函式指標(既然是函式指標,則這個函式指標的定義形式就已經確定了,主要包括函式引數型別、個數、返回值等),而這個函式指標所指向的函式就是傳說中的回撥函式,在你呼叫介面函式的時候,你需要把回撥函式地址以引數的形式傳遞給介面函式,這之後,介面函式就可以在自己的實現裡面呼叫回撥函數了,這個過程就是回撥函式的見解呼叫過程。總結一下,你定義的函式funA呼叫已經實現好的介面函式,然後介面函式再呼叫回撥函式;

第三,回撥函式的內容是由你實現的,但回撥函式的定義形式是介面函式確定的,即你的系統或者你公司的前輩要求你必須這樣實現這個函式。