当前位置: 首页 > news >正文

帮做装修设计的网站北京seo服务行者

帮做装修设计的网站,北京seo服务行者,东营市人民政府网,手机网站 广告c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

9efbcbc3d25747719da38c01b3fa9b4f.gif

 c语言中的小小白-CSDN博客c语言中的小小白关注算法,c++,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm=1001.2014.3001.5343

给大家分享一句我很喜欢我话:

知不足而奋进,望远山而前行!!!

铁铁们,成功的路上必然是孤独且艰难的,但是我们不可以放弃,远山就在前方,但我们能力仍然不足,所有我们更要奋进前行!!!

今天我们更新了回调函数内容,

🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝

一、回调函数是什么

我们先来看一下回调函数的最基本概念:

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

光看这个概念我们可能会觉得这个东西过于抽象,下面我们用一幅图来展示一下什么是回调函数,

假设我们要使用一个排序函数来对数组进行排序,那么在主程序(Main program)中,我们先通过库,选择一个库排序函数(Library function)。但排序算法有很多,有冒泡排序,选择排序,快速排序,归并排序。同时,我们也可能需要对特殊的对象进行排序,比如特定的结构体等。库函数会根据我们的需要选择一种排序算法,然后调用实现该算法的函数来完成排序工作。这个被调用的排序函数就是回调函数(Callback function)。

结合这幅图和上面对回调函数的解释,我们可以发现,要实现回调函数,最关键的一点就是要将函数的指针传递给一个函数(上图中是库函数),然后这个函数就可以通过这个指针来调用回调函数了。注意,回调函数并不是C语言特有的,几乎任何语言都有回调函数。在C语言中,我们通过使用函数指针来实现回调函数。

我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调。

如果代码立即被执行就称为同步回调,如果过后再执行,则称之为异步回调。

回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

二、为什么要使用回调函数

因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数。

简而言之,回调函数就是允许用户把需要调用的方法的指针作为参数传递给一个函数,以便该函数在处理相似事件的时候可以灵活的使用不同的方法。

回调似乎只是函数间的调用,和普通函数调用没啥区别。

但仔细看,可以发现两者之间的一个关键的不同:在回调中,主程序把回调函数像参数一样传入库函数。

这样一来,只要我们改变传进库函数的参数,就可以实现不同的功能,这样有没有觉得很灵活?并且当库函数很复杂或者不可见的时候利用回调函数就显得十分优秀。

三、回调函数实际应用例子

下面我们来举一个回调函数的例子,这个例子是一个一个可以计算加法减法等,

下面我们先来看一下代码,

#define _CRT_SECURE_NP_WARNINGS#include<stdio.h>int add(int x, int y) {return x + y;
}
int sub(int x, int y) {return x - y;
}
int mul(int x, int y) {return x * y;
}
int div(int x, int y) {return x / y;
}void menu(){printf("****************************\n");printf("********1.add  2.sub *******\n");printf("********3.mul  4.div *******\n");printf("********0.exit       *******\n");
}void calc(int (*pf)(int, int)) {int x = 0, y = 0;int ret = 0;printf("请输入两个操作数:>");scanf("%d%d", &x, &y);ret = pf(x, y);printf("%d\n", ret);
}int main()
{int input = 0;do {menu();scanf("%d", &input);switch (input) {case 1:calc(add);break;case 2:calc(sub);break;case 3:calc(mul);break;case 4:calc(div);break;case 0:break;default:printf("输入错误,请重新选择。");break;}} while (input);return 0;
}

这便是一个计算器的代码,当这串代码运行之后,是一个这样的界面:

我们可以选择是进行加法还是减法或者其他的运算,

其中的calc函数便通过指针进行对add等函数的调用,这便是一个简单的回调函数的例子。

http://www.zhongyajixie.com/news/45086.html

相关文章:

  • 网站设置多少个关键词市场营销分析案例
  • 网站精品案例真正免费的网站建站平台运营
  • wordpress locahost长沙网络优化产品
  • 安丘网站建设多少钱网上竞价
  • 做微信小程序的网站新东方留学机构官网
  • 安徽平台网站建设公司做推广
  • 扬中网站建设价格千锋教育培训机构就业率
  • wordpress数据库里更改域名福州短视频seo
  • 泰安市建设信息网站沈阳网站关键字优化
  • 您的网站未备案实时军事热点
  • 郑州网站推广公司电话市场调研报告ppt
  • asp动态网站开发认证模拟判断题百度seo关键词优化方案
  • 北京网站制作网络推广公司网络营销专业是干嘛的
  • 陕西企业网站建设哪家专业短视频seo询盘获客系统软件
  • 网站开发学那个语言比较好口碑营销的重要性
  • 无锡制作网站百度链接提交
  • 科学城做网站公司济宁百度推广电话
  • 商城网站开发业务推广公司
  • 做支付网站游戏推广怎么找玩家
  • 吕梁网站开发百度一下百度搜索百度一下
  • 那些免费网站做推广比较好现在最好的免费的建站平台
  • 开发一个网站的过程是什么凤山网站seo
  • 哪家公司做网站便宜优秀的网页设计案例
  • 只做英文网站 域名有什么要求2022近期重大新闻事件10条
  • 做淘宝客没网站怎么做网络营销策划方案ppt模板
  • 给人做ppt的网站吗北京做的好的seo公司
  • 什么做直播网站好平台关键词排名优化
  • 做任务赚佣金的网站爱网
  • 西安网站漏洞seo建站要求
  • 公司网站备案具体什么情况google国际版入口