#/*-------------------回调函数--------------------------*/
#include <stdio.h>
#include <stdlib.h>
typedef struct __OP{ //初始化函数指针
float (*P_ADD)(float ,float);
float (*P_SUB)(float ,float);
float (*P_MUT)(float ,float);
float (*P_DIV)(float ,float);
}OP;
float ADD(float a ,float b ){ //加法
return a+b;
}
float SUB(float a ,float b ){ //减法
return a-b;
}
float MUT(float a ,float b ){ //乘法
return a*b;
}
float DIV(float a ,float b ){ //除法
return a/b;
}
void
op_init(OP *op) // 函数指针 指向函数的地址
{
op->P_ADD = ADD;
op->P_SUB = SUB;
op->P_MUT = MUT;
op->P_DIV = DIV;
}
float
ADD_SUB_MUT_DIV(float a ,float b ,float (*io_fuc)(float ,float)) //函数回调
{
return (*io_fuc)(a,b);
}
int main(){
OP *op = (OP*)malloc(sizeof(OP));
op_init(op);
//输出函数指针的运算
printf("ADD = %f SUB =%f MUT = %f DIV = %f \n"
,op->P_ADD(1,2)
,op->P_SUB(1,2)
,op->P_MUT(1,2)
, op->P_DIV(1,2));
//输出回调函数的运算
printf("ADD = %f SUB =%f MUT = %f DIV = %f" ,ADD_SUB_MUT_DIV(1,2,ADD)
,ADD_SUB_MUT_DIV(1,2,SUB)
,ADD_SUB_MUT_DIV(1,2,MUT)
,ADD_SUB_MUT_DIV(1,2,DIV));
}
C语言学习笔记 -回调函数
最新推荐文章于 2025-05-12 11:00:14 发布
本文通过C语言实现了一个回调函数的实例,展示了如何定义和使用函数指针来操作不同的数学运算,包括加法、减法、乘法和除法。通过创建一个结构体并初始化函数指针,以及定义一个通用的运算函数,该实例详细解释了回调函数的工作原理。
931

被折叠的 条评论
为什么被折叠?



