国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 中回調(diào)函數(shù)詳解及簡單實(shí)例

2020-01-26 14:05:01
字體:
供稿:網(wǎng)友

C++ 中回調(diào)函數(shù)詳解及簡單實(shí)例

回調(diào)函數(shù)調(diào)用關(guān)系圖

 

對于第一種情況,主程序可以從執(zhí)行到回調(diào)函數(shù),也可以不執(zhí)行回調(diào)函數(shù),關(guān)鍵看宿主函數(shù)是否調(diào)用了回調(diào)函數(shù)。

對于第二種情況,主程序可以從執(zhí)行到回調(diào)函數(shù),也可以不執(zhí)行回調(diào)函數(shù),關(guān)鍵看宿主函數(shù)是否調(diào)用了回調(diào)函數(shù)。主程序不知道宿主函數(shù)什么時候調(diào)用回調(diào)函數(shù),因?yàn)檎{(diào)用函數(shù)啟動了線程,這樣,主程序就不必關(guān)心宿主函數(shù)什么時候調(diào)用回調(diào)函數(shù)了,主程序可以釋放出來做自己的事了。

代碼示例

#include <stdio.h>  typedef void(*lpFunc)(void *, char *);  // 函數(shù)指針 // 回調(diào)函數(shù)的宿主函數(shù),在這里回調(diào)用函數(shù)被使用, void GetCallBack(void * lpVoid, lpFunc callback) {     callback(lpVoid, "test"); }     class A{ public:     A(){};         void outName(char szAlarm[]){        printf("my name is %s /n", szAlarm);        }         // 被宿主調(diào)用的回調(diào)函數(shù)     static void fCallback(void *lpVoid, char szAlarm[]){        A * p = (A*)(lpVoid);        p->outName(szAlarm);     }         //調(diào)用外部宿主函數(shù),當(dāng)Test函數(shù)調(diào)用過宿主函數(shù)以后,Test就再也不關(guān)心宿主函數(shù)     //什么時候調(diào)用回調(diào)函數(shù)了,因?yàn)槟菚r宿主函數(shù)自己的事了     void Test(){        GetCallBack(this, fCallback);     } };  int main(void) {     A a;     a.Test(); } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 浠水县| 万年县| 治多县| 咸丰县| 濮阳县| 栾川县| 璧山县| 寻乌县| 沅江市| 阿图什市| 秦皇岛市| 潍坊市| 安乡县| 无极县| 贵定县| 济源市| 洪泽县| 拜泉县| 盈江县| 屯留县| 罗定市| 邮箱| 邵东县| 木里| 五台县| 临潭县| 太白县| 化德县| 东乡| 香格里拉县| 抚顺县| 饶河县| 手游| 建湖县| 越西县| 黎城县| 亚东县| 元江| 瑞金市| 临海市| 贵定县|