当前位置:编程学习 > 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专栏

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,