国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 蒙阴县| 德令哈市| 凤阳县| 务川| 周宁县| 泸水县| 宜兴市| 汕头市| 新宾| 贵阳市| 灵武市| 城固县| 洱源县| 墨脱县| 蒲江县| 吴江市| 札达县| 綦江县| 盐城市| 临武县| 江西省| 沙河市| 宣城市| 张北县| 濉溪县| 景德镇市| 福贡县| 资兴市| 漳平市| 乐亭县| 若羌县| 平昌县| 阳山县| 莲花县| 青川县| 万山特区| 通城县| 凤山市| 济南市| 克什克腾旗| 沧州市|