news 2026/7/18 3:06:07

一句话说透C语言回调函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一句话说透C语言回调函数

你定规则,我来执行;你写动作,我来调用。

1. 回调函数是什么?

回调函数,说白了就是:你把一个函数的地址(指针)传给另一个函数,让那个函数在合适的时机回头调用你传过去的这个函数。

关键点就两个:

  • 你写的(函数)
  • 别人调(在某个函数内部通过函数指针调用)

2. 先看普通调用

#include<stdio.h>intadd(inta,intb){returna+b;}intmain(){intresult=add(3,5);// 主调函数主动调用 addprintf("%d\n",result);return0;}

这是“正向调用”——main主动去调用add

3. 再看回调调用

#include<stdio.h>// 这是回调函数(你写的)intadd(inta,intb){returna+b;}// 这是通用计算函数(它接收一个函数指针,回头调用它)intcalculate(intx,inty,int(*callback)(int,int)){// 在这里“回调”你传进来的函数returncallback(x,y);}intmain(){intresult=calculate(3,5,add);// 把 add 的地址传给 calculateprintf("%d\n",result);return0;}

calculate并不关心具体怎么算,它只负责在内部调用你给它的那个函数。你给什么,它就怎么算——这就是回调的威力。

4. 为什么需要回调?

  • 解耦:调用者不需要知道具体实现,只需约定好参数和返回值(函数签名)。
  • 灵活:同一个calculate,你可以传入addsubmul……实现不同行为。
  • 事件驱动:比如定时器、按键响应、网络数据到达时,系统回头调用你的处理函数。

5. 一个更生活的例子

你点外卖,告诉外卖员“到了打电话给我”。
“打电话”这个动作就是回调函数——你定义了“接到电话后怎么做”(比如下楼取餐),外卖平台在“送达”这个事件发生时,回头调用你的电话(回调)

6. C 语言实现要点

  • 函数指针作为参数。
  • 回调函数的类型必须匹配(参数个数、类型、返回值)。
  • 可以配合void*传递自定义数据(实现类似闭包的效果)。
voidregister_callback(void(*cb)(int),void*user_data){// 存储 cb 和 user_data,等事件触发时调用}

7. 总结

概念一句话解释
回调函数你写的,但交给别人去调用的函数
函数指针用来“记住”回调函数的地址
回调机制把“做什么”和“什么时候做”分离

回调函数 = 你把“动作”打包,交给框架/库,让它们在合适的时候帮你执行。

初学只要记住:函数名就是地址,把地址传过去,别人就能回头调用你。这就是回调。


如果你觉得有帮助,欢迎点赞、收藏、评论,让更多人看到!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 3:05:58

MoveIt!自定义约束采样器:工业级机器人高成功率运动规划核心

1. 这不是“加个插件就完事”的教程&#xff1a;为什么自定义约束采样器是MoveIt!真实落地的分水岭在ROS机器人开发圈里&#xff0c;提到MoveIt!&#xff0c;很多人第一反应是“那个能规划机械臂路径的包”&#xff0c;接着顺手调个move_group接口、跑个Rviz可视化、点几下“Pl…

作者头像 李华
网站建设 2026/7/18 3:04:52

Browser Use框架:事件驱动的AI浏览器自动化解决方案

如果你正在开发AI应用&#xff0c;特别是需要让大模型与浏览器交互的场景&#xff0c;可能会遇到这样的困境&#xff1a;传统方案要么过于笨重&#xff0c;需要大量手动编码来控制浏览器&#xff1b;要么过于脆弱&#xff0c;页面结构稍有变化就会导致脚本失效。更头疼的是&…

作者头像 李华
网站建设 2026/7/18 3:04:39

Dify平台:可视化AI应用开发与部署实战指南

1. Dify平台概述与核心价值Dify作为新一代AI应用开发平台&#xff0c;正在彻底改变传统大模型应用的构建方式。这个可视化工作流平台最吸引我的地方在于它完美平衡了专业开发者和普通用户的需求——既提供了足够强大的功能深度&#xff0c;又通过直观的界面降低了技术门槛。在实…

作者头像 李华
网站建设 2026/7/18 3:04:05

AI生图提示词怎么写?用EasyClaw+GPT Image 2,说人话就能出大片

GPT Image 2是目前AI生图领域最稳的模型——中文文字不出乱码、复杂道具关系理解准确、材质还原度极高。但大多数人打开它之后对着输入框想了半天&#xff0c;敲出来的东西让AI也崩溃&#xff1a; “好看的茶道照片&#xff0c;禅意&#xff0c;高清”——壶歪了&#xff0c;杯…

作者头像 李华
网站建设 2026/7/18 3:01:30

告别手动搬砖!飞书CLI+AI实操指南,80%办公工作一键搞定

文章目录一、先唠唠&#xff1a;打工人的AI痛点&#xff0c;全是血泪1.1 飞书CLI到底是个啥&#xff1f;大白话拆解二、一步到位安装配置&#xff0c;全程踩坑点全标出来2.1 前置准备&#xff0c;先检查Node环境2.2 三步安装&#xff0c;别偷懒少装技能2.3 飞书应用创建授权&am…

作者头像 李华