news 2026/4/23 14:17:02

指针注册方式实现回调函数-c语言使用回调函数实现封装和多态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
指针注册方式实现回调函数-c语言使用回调函数实现封装和多态

指针注册方式实现回调函数-c语言使用回调函数实现封装和多态

一、常见回调函数案例
//定义回调函数类型
typedef void(*CallbackFunction)(int);

//回调函数实现
void myCallback(int value) {

std::cout << "my value:" << value << std::endl;
}

//执行回调函数:接受一个回调函数参数
void funcAction(CallbackFunction callback,int value) {
if (callback != NULL) {
callback(value);
}
}


int main() {
funcAction(myCallback, 10);


return 0;

}


二、使用指针注册方式实现回调函数
1.回调函数实现C语言的多态
这种方式实现了c语言的多态。面向对象的多态的实现原理是一样的。

//定义回调函数类型
typedef int(*CallbackFunction)(int a,int b);

typedef struct data_t {
int a;
int b;
CallbackFunction callback;//函数管理器
}op_data;

//注册函数
void Register(op_data *data) {
int reslt = data->callback(data->a, data->b);
std::cout << "result:" << reslt << std::endl;
}

//加法回调函数
int add(int a,int b) {
return a + b;
}

//减法回调函数
int sub(int a, int b) {
return a - b;
}


int main() {
op_data *mydata = (op_data*)malloc(sizeof(op_data));
mydata->a = 10;
mydata->b = 5;

mydata->callback = add;
Register(mydata);


mydata->callback = sub;
Register(mydata);

free(mydata);

return 0;

}

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

GO!开源UART短信转发器【无需焊接+不耗流量】

今天我们特别推荐的是开源UART短信转发器。一、UART短信转发器UART短信转发器是基于低功耗系列4G-Cat.1模组&#xff08;如&#xff1a;Air780EHV、Air780EHM等&#xff09;设备的短信转发系统&#xff0c;支持接收短信并通过串口转发到上位机。1.1 方案特色&#xff1a;通过串…

作者头像 李华
网站建设 2026/4/18 8:53:58

DeepSeek V4代码生成实战:3步用AI模型搭建你的第一个智能脚本

文章目录前言&#xff1a;谁还在手写重复代码&#xff1f;DeepSeek V4直接帮你一键生成&#xff01;第一步&#xff1a;环境搭建工具准备&#xff0c;5分钟搞定&#xff0c;零踩坑&#xff01;1. 安装核心依赖包2. 获取DeepSeek API Key&#xff08;免费够用&#xff09;3. 环境…

作者头像 李华
网站建设 2026/4/16 10:04:43

从11月开始学黑客技术,3个月后你会发现:原来赚钱这么顺!

从 11 月开始学黑客技术&#xff0c;3 个月后你会发现&#xff1a;原来赚钱这么顺&#xff01; 11 月才启动学黑客技术&#xff0c;是不是怕 “赶不上趟”&#xff1f;担心年底没成果、年初没机会&#xff1f;其实恰恰相反 —— 现在入门&#xff0c;刚好踩中网络安全的黄金窗口…

作者头像 李华
网站建设 2026/4/23 13:58:47

AI文学影像创意深化:从概念到洞见

一、创意深化的本质 1.1 什么是"深化"&#xff1f; 三个层次的理解 表层创意&#xff08;What&#xff09;↓ 深层创意&#xff08;Why&#xff09;↓ 元层创意&#xff08;What does it reveal&#xff09;但这还不够深。真正的深化是&#xff1a; 个人经验↓ 普…

作者头像 李华