为什么使用回调函数?

关于什么是回调函数以及回调函数怎么使用就不说了,随便百度一下有很多解答。在这直说一下为什么使用回调函数以及使用回调有哪些好处?

首先来看一下下面的代码?printWelcome()和printGoodbye()就相当于是封装在dll中的函数,而callback是定义在我们应用程序中的函数。

#include <stdio.h>

void printWelcome(int len)

{

       printf("欢迎欢迎 -- %d/n", len);

}

void printGoodbye(int len)

{

       printf("送客送客 -- %d/n", len);

}

void callback(int times, void (* print)(int))

{

       int i;

       for (i = 0; i < times; ++i)

       {

              print(i);

       }

       printf("/n我不知道你是迎客还是送客!/n/n");

}

void main(void)

{

       callback(10, printWelcome);

       callback(10, printGoodbye);

       printWelcome(5);

}


上面的代码也可以下城这种方式:

#include <stdio.h>

 

void printWelcome(int len)

{

       printf("欢迎欢迎 -- %d/n", len);

}

 

void printGoodbye(int len)

{

       printf("送客送客 -- %d/n", len);

}

 

void callWelcome(int times)

{

       int i;

       for (i = 0; i < times; ++i)

       {

              printWelcome(i);

       }

}


void callGoodbye(int times)

{

       int i;

       for (i = 0; i < times; ++i)

       {

              printGoodbye(i);

       }

}


void main(void)

{

       callWelcome(10);

       callGoodbye(10);

       printWelcome(5);

}

可以看到上面两种在调用printWelcome()和printGoodbye()函数时,都需要在知道printWelcome()和printGoodbye()参数的基础上才能调用这两个函数,并不像其他文章所说的使用回调函数不需要关心被调函数的任何东西


但是从上面的代码对比中,明显可以看到使用回调函数一个好处是:只要符合参数类型一样、返回值类型一样的函数都可以通过callback(即回调函数)调用,这样一来只要我想要调用这种模式的函数的地方都可以使用这个callback来调用。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值