回调函数

来源:互联网 发布:销售团队励志视频知乎 编辑:程序博客网 时间:2024/06/06 23:59

回调函数


1. 什么是回调函数?

回调(callback),就是一种利用函数指针进行函数调用的过程。如果把一个函数f1的地址/函数指针作为参数传递给另一个函数f2,当这个指针被用为调用它所指向的函数(f1)时,我们就说f2是回调函数。

其实回调函数就是函数指针的一种用法。

 

2. 为什么要用回调函数?

将策略与实现相分离,也就是设计模式中的将接口与实现分离原则。这样,可以把调用者和被调用者分离,调用者不必关心谁是被调用者,只需知道存在这样一个具有某种特定原型和某些限制条件(如返回值类型)的被调用函数即可。

 

3. 一个简单的demo

 

#include <stdio.h>void print_hello(int len){    printf("Hello...\n");}void print_bye(int len){    printf("Goodbye...\n");}void my_callback(int times, void(* print_something)(int)){    int i;    for (i = 0; i < times; i++)        print_something(i);}int main(){    my_callback(10, print_hello);    my_callback(11, print_bye);    return 0;}

 

1 0
原创粉丝点击