1. 程式人生 > >函式指標做函式引數的意義

函式指標做函式引數的意義

intOper(int(*MyPointerFuncAdd)(int a,int b)){int c=MyPointerFuncAdd(5,6);//間接呼叫} 實現了函式呼叫和任務的編寫可以分開。 這樣的話,這要是這個函式型別的函式,傳入不同的函式名,就能執行不同的函式體,用這種方法實現了類似於C++中的多型的形式。 在工程中,函式指標主要是正向呼叫反向呼叫 其中正向呼叫指的是從函式體寫在動態庫中,在動態庫中定義函式時, 、都把定義成函式指標型別的。 此時在外面定義一個函式指標變數,通過一個函式就能夠把這個函式的首地址取出來,就可以根據這個被賦值以後的變數呼叫這個函式。這就是正向呼叫 反向呼叫(回撥函式)的用途非常大 動態庫==》框架 在實際工程中有時一個產品為了適應多個第三方廠商的產品,會給第三方廠商提供一個動態庫寫成的框架,讓廠商們都根據這個框架去開發產品,在動態庫裡就只是單純的呼叫這個函式,在動態庫裡不寫任何函式體,這樣就可以適配各個廠商的功能函式。 框架一般是不會變化的,將動態庫裡面的函式都寫成函式指標型別的,在函式體裡,再次呼叫這個函式,這樣在動態庫裡就會回撥廠商提供的功能函式。
回撥函式是利用函式指標實現的一種呼叫機制 回撥機制原理         當具體時間發生時,呼叫者通過函式指標呼叫具體函式         回撥機制將呼叫者和被調函式分開,兩者互不依賴。