回调函数

回调函数


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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值