回調函數的概念:
回調函數就是一個被作為參數傳遞的函數。在C語言中,回調函數只能使用函數指針實現,在C++、Python、ECMAScript等更現代的編程語言中還可以使用仿函數或匿名函數。
回調函數的使用可以大大提升編程的效率,這使得它在現代編程中被非常多地使用。同時,有一些需求必須要使用回調函數來實現。
最著名的回調函數調用有C/C++標準庫stdlib.h/cstdlib中的快速排序函數qsort和二分查找函數bsearch中都會要求的一個與strcmp類似的參數,用于設置數據的比較方法。
回調函數的使用步驟:
⑴定義一個回調函數;
⑵提供函數實現的一方在初始化的時候,將回調函數的函數指針注冊給調用者;
⑶當特定的事件或條件發生的時候,調用者使用函數指針調用回調函數對事件進行處理。
回調函數中沒有參數的使用方法,如下代碼:
#include
int Callback_1() // Callback Function 1
{
printf("Hello, this is Callback_1 ");
return 0;
}
int Callback_2() // Callback Function 2
{
printf("Hello, this is Callback_2 ");
return 0;
}
int Callback_3() // Callback Function 3
{
printf("Hello, this is Callback_3 ");
return 0;
}
int Handle(int (*Callback)()) //定義回調函數體
{
printf("Entering Handle Function. ");
Callback();
printf("Leaving Handle Function. ");
}
int main()
{
printf("Entering Main Function. ");
Handle(Callback_1);
Handle(Callback_2);
Handle(Callback_3);
printf("Leaving Main Function. ");
return 0;
}
d當我們回調的函數帶參數時,需要做如下的調整:
#include
int Callback_1(int x) // Callback Function 1
{
printf("Hello, this is Callback_1: x = %d ", x);
return 0;
}
int Callback_2(int x) // Callback Function 2
{
printf("Hello, this is Callback_2: x = %d ", x);
return 0;
}
int Callback_3(int x) // Callback Function 3
{
printf("Hello, this is Callback_3: x = %d ", x);
return 0;
}
int Handle(int y, int (*Callback)(int)) //注意差異
{
printf("Entering Handle Function. ");
Callback(y);
printf("Leaving Handle Function. ");
}
int main()
{
int a = 2;
int b = 4;
int c = 6;
printf("Entering Main Function. ");
Handle(a, Callback_1);
Handle(b, Callback_2);
Handle(c, Callback_3);
printf("Leaving Main Function. ");
return 0;
}
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7630瀏覽量
140249 -
編程語言
+關注
關注
10文章
1955瀏覽量
36074 -
回調函數
+關注
關注
0文章
88瀏覽量
11822
發布評論請先 登錄
相關推薦
熱點推薦
回調函數的詳細資料說明
異步事件的處理,首先將異步事件發生時需要執行的代碼編寫成一個函數,并將該函數注冊成為回調函數,這樣當該異步事件發生時,系統會自動調用事先注冊
發表于 02-28 08:00
?6次下載

C語言函數的回調函數
來源:嵌入式客棧 1 什么是回調函數?首先什么是回調呢? 我的理解是:把一段可執行的代碼像參數傳遞那樣傳給其他代碼,而這段代碼會在某個時刻被
函數指針和回調函數的使用方法
了解開發語言的朋友應該都會對回調函數有所了解,在很多的程序開發語言中都能看到回調的身影。很多場景下,當某個條件成立以后我們希望代碼執行某些指
評論