您的位置:首页 > 其它

回调函数

2016-01-17 01:09 176 查看

回调函数

复习了下函数指针,把复习得到的东西记录一下:

  以前用c语言
qsort
函数的时候,知道传入一个函数指针的参数,这个函数是由自己写的,用来确定排序的顺序是由大到小还是由小到大,以前没有特别的考虑,想着为什么要这么麻烦,直接传入一个flag确定方向不就好了。

  现在重新看了下回调函数,发现那个不就是回调函数嘛!回调函数的执行体由我们自己写,调用回调函数的
qsort
函数由库函数写好,这样就实现了
代码的最大化重用
,效率又比较高。

  仔细想想,回调函数最显著的特点应该就是分离,把一个比较通用的代码块(
qsort
函数)中的需要特殊化的部分(
qsort
中的比较函数)分离开,这样除了比较函数外,其他部分利用率达到了最高。

  除此之外,回调函数还可以比较好的
分离调用与被调用
,使得调用者不必知道回调函数的具体调用形式,只要知道调用回调函数的具体形式就可以了(往往这是更加简洁易记的)。

  总之,函数指针还有一些好玩的用法,以后继续学习。

另外函数指针的类型一般用typedef重新命名以便于简化代码,格式如下:

void CallBack(void); //以此回调函数声明为例
typedef void (*CBF)(void);//CBF就是指向回调函数形式的指针类型

//调用回调函数的函数的声明类似下面:
void SetCallBack(CBF f);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 回调函数