程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C的回調函數--曾經難為情

C的回調函數--曾經難為情

編輯:C++入門知識

最早接觸回調函數應該是學sqlite數據庫時接觸到的(記得是這個sqlite_exec()有用到它),但是那個時候沒認真去理解,一直都覺得回調函數很神秘。現在天天又聽到什麼叫回調函數的,想想真的太難為情了,還是不懂。找個時間學了下,原來認真理解下還是很OK的。
  
 
#include<stdio.h> 
 
int CallBack_1(int a,int b,int (*ptr)(int a,int b)) //方法一:通過指針函數【回調函數格式為:int (*ptr)(int a,int b)】 

 return (*ptr)(a,b); 

 
typedef int (*CallbackFun)(int a,int b); //自定義回調函數類型,方便命名 
 
int CallBack_2(int a,int b,CallbackFun pCallBack) //方法二:通過命名方式 

 return pCallBack(a,b); 

 
int add(int a,int b) //符合回調函數的參數格式[int (*ptr)(int a,int b)] 

 return a+b; 

 
int main()  
{  
 int a=24,b=1; 
 int c; 
 c=CallBack_1(a,b,add); 
 printf("This is the first method:c=%d\n",c); 
  
 a=2011; 
 b=1; 
 c=CallBack_2(a,b,add); 
 printf("This is the second method:c=%d\n",c); 
 
    return 0; 

 
  
 

結果如下:

 \

摘自 Ivan@_linux專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved