2015年10月18日 星期日
C Callback function
C語言裡面的Callback function主要的概念就是:
傳回某個函數的指標,呼叫者即可透過該函數指標直接執行函數…
參考網路上的範例
//宣告callback function的prototype(原型)
typedef struct{
uint8_t time ;
void (*bsp_callback)(void);
}Display_Info_struct;
//宣告該struct的變數 DisplayInfo
static Display_Info_struct DisplayInfo;
//定義會被呼叫的函式
void showHelloword()
{
printf("Hello world.\n");
}
//定義會使用CallBack Fuction的函式
void BSP_SHOW(uint8_t time,void (*callback)(void))
{
DisplayInfo.time = time;
DisplayInfo.bsp_callback = callback;
while(DisplayInfo.time > 0){
--DisplayInfo.time;
if(DisplayInfo.bsp_time == 0){
//呼叫callback function
if(DisplayInfo.bsp_callback)
DisplayInfo.bsp_callback();
//清除callback fuction
DisplayInfo.bsp_callback = 0;
}
delay_ms(1000); // 1 second
}
}
//由main執行的呼叫點起始
void main(){
//顯示10秒的hello word字串
BSP_SHOW( 10, showHelloword);
}
Ref.
http://eeepage.info/examplecallback-function/
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言