您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C語言回調函數怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C語言回調函數怎么用”這篇文章吧。
因為在程序中,我們有很多的庫函數,我們也有很多的上層函數,為了增加程序的靈活性,我們就將一些函數指針作為參數傳遞到函數里面去。
說的粗糙一點,就是將一個函數作為另一個函數的函數參數。
調用回調函數我們需要一個中間函數進行過渡。
這個中間函數的參數是一個函數指針。
我們來寫一個簡單的例子,幫助我們理解:
#include <stdio.h> /*回調函數1*/ void callBack1(void) { printf("this is callback1\n"); } /*回調函數2*/ void callBack2(void) { printf("this is callback2\n"); } /*中間函數*/ /*參數是一個函數指針*/ void calc(void (*func)()) { func(); } int main() { calc(callBack1); printf("************\n"); calc(callBack2); return 0; }
分析一下這個簡單的回調函數的運用。
函數從main函數開始運行,我們將回調函數(callBack)作為一個參數傳遞到中間函數(calc)里面,中間函數通過函數指針的方式來接受,通過傳入不同的回調函數((callBack1)、(callBack2))來執行不同的結果。
上面的程序簡單的說明了不帶參數的回調函數,那么帶參數的回調函數我們也可以依葫蘆畫瓢。
#include <stdio.h> /*回調函數1*/ int callBack1(int a,int b) { printf("this multiplication:\n"); return a * b; } /*回調函數2*/ int callBack2(int a, int b) { printf("this addition:\n"); return a + b; } /*中間函數*/ /*參數是一個函數指針*/ int calc(int a,int b,int (*func)()) { func(); } int main() { int p; int q; p = calc(20,20, callBack1); printf("%d\n",p); printf("*********\n"); q = calc(20, 20, callBack2); printf("%d\n", q); return 0; }
在工作中我們的回調函數肯定不會這么簡單,但是回調函數的作用是不去改變底層的程序,通過獲得底層的數據來得到不同的數據。這樣我們的上層會有很多變化,但是我們的底層程序不會動。
以上是“C語言回調函數怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。