1. 程式人生 > >函式指標的理解

函式指標的理解

函式指標,本質還是一個指標,便於回撥其他函式。

至於,這個“便於”的理解:函式指標型別規範了它回撥函式的引數型別和返回值型別,從而避免了回撥函式設計的任意性。

很多時候,我們在設計一個軟體框架的時候,有些程式碼我們不能再設計框架之初就寫死。只有在實際使用的時候,才知道該如何去實現它。此時就要我們規範好函式的引數和返回值型別。當別人在使用我們的函式介面時,只要根據指定的規範,將相應的函式實現好,接著將這個函式名傳遞給我們設計的函式介面即可。

當然,我們設計的函式介面,形參應該是函式指標型別!

例如:

linux下 signal 函式的設計,設計者並不知道,當訊號產生時,使用者會做哪些具體的事情,所以函式的原型可以設計成:

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum,sighandler_t handler);

signal 函式的第二個引數是一個函式指標型別,我們呼叫這個時,需要將實現好的函式的函式名傳遞過去。

當然,在設計這個處理函式時不能隨意設計,必須根據signal函式第二個引數的函式指標來設計。