news 2026/5/20 19:49:44

指针注册方式实现回调函数-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/5/18 15:22:16

Redis线上问题排查:从小白到面试高手

Redis线上问题排查指南&#xff08;小白面试版&#xff09; 零基础全栈开发Java微服务版本实战-后端-前端-运维-实战企业级三个实战项目 资源获取&#xff1a;关注公众号: 小坏说Java &#xff0c;获取本文所有示例代码、配置模板及导出工具。 一、面试官压力测试题 零基础…

作者头像 李华
网站建设 2026/5/20 9:56:35

计算是一种算计,算计也是一种计算

事物的属性并非纯粹客观的自在之物&#xff0c;而是在观察者与对象的耦合关系中涌现——观察者所携带的认知框架、测量工具与价值立场决定了何种属性被显现、被强调或被遮蔽&#xff0c;反之&#xff0c;事物所呈现的属性又持续重塑着观察者的认知结构&#xff0c;形成双向建构…

作者头像 李华
网站建设 2026/5/8 0:45:22

Linux 命令:diff3

概述 diff3 命令是三文件差异对比工具&#xff0c;是 diff 命令的扩展&#xff0c;核心作用是同时对比三个文本文件的内容差异&#xff0c;并精准标识出仅在单个文件出现、在两个文件共有、在三个文件都存在的行&#xff0c;还能输出合并冲突标记&#xff0c;是多人协作开发、…

作者头像 李华
网站建设 2026/5/13 9:50:04

基于springboot家政服务上门预约系统

前言 在当今信息化技术迅猛发展的时代背景下&#xff0c;基于Web前端技术搭建的信息服务平台凭借其便捷性与高效性&#xff0c;已赢得社会各界的广泛认可与大力支持。鉴于此&#xff0c;本文聚焦于社区家政服务领域中客户满意度与忠诚度偏低的现状&#xff0c;创新性地采用Vue与…

作者头像 李华
网站建设 2026/5/20 15:51:08

废品回收小程序开发玩法分析(附技术落地要点)

随着“双碳”政策深化与全民环保意识提升&#xff0c;传统废品回收“流程繁琐、激励不足、管控低效”的痛点凸显&#xff0c;废品回收小程序的核心竞争力已从“便捷预约”转向“玩法创新技术赋能”。不同于娱乐类小程序的趣味导向&#xff0c;废品回收小程序玩法设计需立足回收…

作者头像 李华