news 2026/8/29 5:12:18

指针注册方式实现回调函数-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/8/25 0:11:23

《在细雨中呼喊》:当你混到连个找你的人都没有,没人找你吃饭,没人喊你聚会,真该庆祝一下:不是人缘变差了,而是远离了低质量的热闹。

嘿&#xff0c;最近怎么样。是不是也有这种感觉&#xff0c;年纪越大&#xff0c;能坐下来好好说话的人&#xff0c;反而越少。不是没朋友&#xff0c;是有些热闹&#xff0c;你本能地不想凑了。余华在《在细雨中呼喊》里写的那种孤独&#xff0c;年轻时读觉得是苦难&#xff0…

作者头像 李华
网站建设 2026/8/24 21:51:30

独立简化版SharedPtr

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录调整说明完整独立实现代码1. 头文件与引用计数结构体2. 独立版 SharedPtr 实现3. 测试代码&#xff08;单独测试 SharedPtr&#xff09;核心代码关键点解释1. 引用计…

作者头像 李华
网站建设 2026/8/29 4:26:31

必收藏!未来5年程序员最优发展方向,认准AI大模型准没错

对于程序员而言&#xff0c;不夸张地说&#xff0c;未来5年最值得深耕、回报率最高的技术发展方向&#xff0c;毫无疑问是AI大模型&#xff01;不管是刚入门的编程小白&#xff0c;还是深耕多年的资深开发者&#xff0c;抓住这波风口&#xff0c;就能实现职业跃迁&#xff0c;建…

作者头像 李华
网站建设 2026/8/29 2:01:31

参数log_statement 设置为ddl级别及以上存在密码泄露风险

文章目录 环境症状问题原因解决方案 环境 系统平台&#xff1a;N/A 版本&#xff1a;4.1.1 症状 log_statement参数&#xff0c;一般设置为ddl级别以上的选项&#xff0c;但是该方式存在风险&#xff0c;任何修改用户密码的操作都将被明文记录到日志中&#xff0c;建议在修改…

作者头像 李华
网站建设 2026/8/28 10:10:42

真心不骗你!专科生专属AI论文软件,千笔 VS 学术猹,效率翻倍!

随着人工智能技术的迅猛迭代与普及&#xff0c;AI辅助写作工具已逐步渗透到高校学术写作场景中&#xff0c;成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生&#xff0c;开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…

作者头像 李华