回調函數的實質其實就是把函數名當指針來傳遞
typedef void(* Back_Test)(uint8_t i); //h文件中聲名
Back_Test back_test;
void Back_Registered(Back_Test bt){//回調函數註冊
back_test = bt;
}
void User_Use(uint8_t k){//用戶註冊的回調,在此處理用戶事件
printf("k = %d",k);//打印庫回調中傳回來的參數
}
void main(void){
Back_Registered(User_Use);//main中註冊回去函數
}
void key_init(viod){//假如庫有按鍵中斷產生
back_test(3); 通過這裏把事件和數據傳到用戶層
}
上面是一段演示代碼,最大的作用就是在封裝庫文件的時候很方便,用戶不用知道庫文件怎麼實現的,只接收事件