C语言 回调函数 callback - C语言零基础入门教程
目錄
- 一.回調函數原理
- 二.回調函數簡介
- 1.函數指針
- 2.指針函數
- 3.回調函數解釋
- 三.回調函數實戰
- 四.回調函數使用總結
- 五.猜你喜歡
零基礎 C/C++ 學習路線推薦 : C/C++ 學習目錄 >> C 語言基礎入門
一.回調函數原理
你到商店買東西,剛好你要的東西沒有貨,于是你在店員那里留下了你的電話,過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。
在這個例子里,你的電話號碼就叫**回調函數,你把電話留給店員就叫登記回調函數,店里后來有貨了叫做 觸發回調事件,店員給你打電話叫做 調用回調函數,你到店里去取貨叫做響應回調事件**
二.回調函數簡介
在講解 C 語言回調函數之前,我們需要對前面的函數指針和指針函數做簡單的解釋:
1.函數指針
函數指針,其本質是一個指針,指向的是一個函數的地址。
基本聲明形式:返回數據類型 + (*函數名) + (變量類型 1,…);
//返回int類型的函數指針 int (*fun) (int);2.指針函數
指針函數,即返回指針的函數,其本質是一個函數,而該函數的返回值是一個指針。
基本聲明形式:返回數據類型 + * + 函數名 + (變量類型 1,…);
//返回int類型指針的指針函數 int* fun(int x,int y);3.回調函數解釋
回調函數其實就是一個通過函數指針調用的函數!
假如你把 A 函數的指針當作參數傳給 B 函數,然后在 B 函數中通過 A 函數傳進來的這個指針調用 A 函數,那么這就是回調機制。
A 函數就是回調函數,而通常情況下,A 函數是系統在符合你設定條件的情況下會自動執行。
三.回調函數實戰
舉個例子:你現在需要寫一個視頻播放器項目,當視頻播放結束后通知用戶當前視頻已經播放完成!
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 回調函數 callback //@Time:2021/06/24 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************/#include <stdio.h> #include <stdlib.h> #include <string>typedef int (*callBackFunc)(char* name);int playBegin(char* name) {printf("視頻開始解碼,即將出現畫面....\n");return 1; } int playEnd(char* name) {printf("視頻播放結束....\n");return 1; } int play(callBackFunc fn, char* name) {return fn(name); } int main() {char pName[1024] = "色即是空";//視頻播放開始....play(playBegin,pName);//playBegin函數指針作為參數傳遞//視頻播放中....//視頻播放結束....play(playEnd,pName);//playEnd函數指針作為參數傳遞return 0; } /* 輸出: 視頻開始解碼,即將出現畫面.... 視頻播放結束.... */四.回調函數使用總結
1.使用typedef聲明一個函數指針;
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個人博客地址): www.codersrc.com //@File:C語言教程 - C語言 回調函數 callback //@Time:2021/06/24 08:00 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! /******************************************************************************************///沒有參數的回調函數 typedef int (*callBackFunc)();//含有參數的回調函數,回調函數參數可以是一個或者多個 typedef int (*callBackFunc)(int x); typedef int (*callBackFunc)(int x, int y, int z);2.使用 C 語言實現一個和函數指針返回值類型/函數參數都一樣的函數(函數名字任意取);
3.將實現的 C 語言函數作為參數傳遞(實際上就是傳遞的函數指針);
4.滿足特定的情況下,調用回調函數;
五.猜你喜歡
未經允許不得轉載:猿說編程 ? C 語言 回調函數 callback
總結
以上是生活随笔為你收集整理的C语言 回调函数 callback - C语言零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BugkuCTF-WEB题cookie欺
- 下一篇: jq之toggle()