C语言中的回调函数定义以及使用回调函数的例子。

在C语言中,回调函数(Callback Function)是一种特殊的函数,它作为参数传递给另一个函数(我们称之为主函数或调用者),并在需要的时候由主函数来调用。回调函数允许主函数在适当的时候执行特定的操作,而不需要知道这些操作的具体细节。

回调函数的一个常见应用是在事件驱动编程中,当某个特定事件发生时(如用户点击按钮或定时器到期),就会调用回调函数来处理该事件。

以下是一个简单的C语言中使用回调函数的例子,这个例子模拟了一个"计算任务"的场景,用户可以定义自己的计算函数(即回调函数),并将其传递给一个"执行器"函数,由"执行器"函数来调用这个计算函数:

复制代码

c复制代码

|---|-------------------------------------------------------|
| | #include <stdio.h> |
| | |
| | // 定义一个回调函数类型 |
| | typedef int (*CalculationFunc)(int a, int b); |
| | |
| | // 这是一个示例的回调函数,用于加法 |
| | int add(int a, int b) { |
| | return a + b; |
| | } |
| | |
| | // 这是另一个示例的回调函数,用于乘法 |
| | int multiply(int a, int b) { |
| | return a * b; |
| | } |
| | |
| | // 执行器函数,接受一个回调函数作为参数 |
| | int executor(CalculationFunc func, int a, int b) { |
| | return func(a, b); |
| | } |
| | |
| | int main() { |
| | // 使用加法回调函数 |
| | int sum = executor(add, 3, 4); |
| | printf("The sum is: %d\n", sum); |
| | |
| | // 使用乘法回调函数 |
| | int product = executor(multiply, 3, 4); |
| | printf("The product is: %d\n", product); |
| | |
| | return 0; |
| | } |

在这个例子中,我们定义了一个回调函数类型CalculationFunc,它接受两个int类型的参数并返回一个int类型的结果。然后我们定义了两个回调函数addmultiply,它们分别实现了加法和乘法操作。

executor函数接受一个CalculationFunc类型的参数(即回调函数),以及两个int类型的参数ab。它调用传入的回调函数来计算ab的结果,并返回这个结果。

main函数中,我们分别将addmultiply作为回调函数传递给executor函数,并打印出计算结果。

相关推荐
江畔柳前堤12 小时前
大语言模型分布式训练:从并行策略到万卡工程的系统梳理
人工智能·分布式·深度学习·算法·目标检测·机器学习·语言模型
Forever Nore13 小时前
LeetCode 4 寻找两个正序数组的中位数 - 二分
算法·leetcode
罗西的思考15 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
蛋先生DX16 小时前
大模型参数存储格式揭秘:BF不是男朋友
深度学习·算法·llm
爱跳舞的烤冷面16 小时前
自学嵌入式第22天(数据结构——哈希)
数据结构·算法·哈希算法
猎嘤一号16 小时前
博弈论(Game Theory)的理论、算法与工程
人工智能·算法·安全·博弈论
月光船幽幽17 小时前
影子模式下保护 logits 不被修改
人工智能·python·算法
马拉AI17 小时前
腾讯开源 Agent 记忆系统,AI“换对话就忘”的问题有了新解法(附安装使用教程)
人工智能·算法·开源·科研
地平线开发者18 小时前
征程6工具链模型X86推理方式说明
算法
地平线开发者18 小时前
【征程6】校准量化中HistogramObserver解析
算法