c语言中回调函数的理解和使用

文章目录

  • [1 回调函数的作用](#1 回调函数的作用)
  • [2 回调函数的应用示例](#2 回调函数的应用示例)

>>返回总目录<<

1 回调函数的作用

回调函数是通过函数指针实现的。可以将调用者和被调用者进行解耦,通过一个函数指针可以关联不同的函数实现,实现前提是函数指针和函数实现的参数类型一致,用户通过把需要调用函数的指针作为参数传递给一个函数进行实现,可以实现个功能模块之间的解耦,增强代码的可移植性及函数调用的灵活性。

2 回调函数的应用示例

c 复制代码
#include <stdio.h>

int SUB(int a, int b); //函数声明
int (*p)(int a, int b); //定义一个函数指针,(*p)这里的()一定不能省略

int main()
{
	int a = 10;
	int b = 5;
	int result = 0;
	/* 将函数注册到函数指针,在实际应用中,可根据不同的场景注册不同的函数,类似C#语言中的Inferface作用*/
	p = SUB; 
	result = (*p)(a, b);
	printf("result = %d", result);
    return 0;
}

int SUB(int a, int b)
{
	return a + b;	
}
//输出:result = 15

参考1:c语言回调函数的使用及实际作用详解
参考2:究竟什么是callback function(回调函数)

相关推荐
天空'之城1 小时前
C 语言工业级通用组件手写 30:安全内存拷贝组件
c语言·内存拷贝·工业级组件·安全内存操作
LuminousCPP2 小时前
数据结构-双向循环链表
c语言·数据结构·笔记·链表
小僧景贤5 小时前
嵌入式C语言 第二篇:基础语法|嵌入式C与标准C的核心差异
c语言·开发语言·嵌入式c语言
wuyk5557 小时前
1.栈:后进先出的线性数据结构
c语言·数据结构·stm32·单片机
LuminousCPP8 小时前
数据结构-时间与复杂度|时间/空间复杂度 + 两道力扣练习 + 二分查找复盘
c语言·数据结构·经验分享·算法·leetcode
带鱼吃猫8 小时前
预处理器:宏、运算符与条件编译
c语言·开发语言
(Charon)9 小时前
【C++】线程安全队列(二):生产者消费者模型与 condition_variable 阻塞等待
c语言·开发语言·c++
SunnyByte10 小时前
排序进阶:快速排序与归并排序的迭代实现,并与递归版本对比
c语言·数据结构·算法·排序算法
wuminyu11 小时前
JDK21解决虚拟线程IO阻塞原理剖析
java·linux·c语言·jvm·c++
MC皮蛋侠客14 小时前
TDengine C++ 系列(5):C/C++ 连接器——连接管理与查询 API
c语言·c++·tdengine