[其他] 关于回调函数在结构体中的使用

[复制链接]
 楼主| nawu 发表于 2023-9-19 16:47 | 显示全部楼层 |阅读模式
这样可以方便调用字节写的自定义函数API接口,也是嵌入式经常会使用到的函数调用方法。

代码说话:



#include <stdio.h>

int add(int x, int y){
    return x + y;
}
int sub(int x, int y){
    return x - y;
}
int mul(int x, int y){
    return x * y;
}
float exc(int x, int y){
    return x *1.0 / y;
}
struct fops{
    //回调函数
    int (*F1)(int, int);
    int (*F2)(int, int);
    int (*F3)(int, int);
    float (*F4)(int, int);
};
struct fops s = {
    .F1 = add,
    .F2 = sub,
    .F3 = mul,
    .F4 = exc
};
int main()
{  
    int x = 15, y = 12;
    printf("%d\n", s.F1(x, y));
    printf("%d\n", s.F2(x, y));
    printf("%d\n", s.F3(x, y));
    printf("%.2f\n", s.F4(x, y));
    return 0;
}

————————————————
版权声明:本文为CSDN博主「米多小菜菜」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_48290554/article/details/132596490

tpgf 发表于 2023-10-12 16:28 | 显示全部楼层
结构还是一样的结构 只不过结构体里边的成员变成了函数
paotangsan 发表于 2023-10-12 16:45 | 显示全部楼层
这样做会提高代码的效率吗
wakayi 发表于 2023-10-12 17:02 | 显示全部楼层
定义一个结构体 不是多了一层调用吗?
xiaoqizi 发表于 2023-10-12 18:33 | 显示全部楼层
这样操作方便各个模块之间做接口调用
wowu 发表于 2023-10-12 19:07 | 显示全部楼层
没看明白这样使用的优势在哪里
renzheshengui 发表于 2023-10-12 19:41 | 显示全部楼层
为什么要把回调函数放在结构体里边呢?
caigang13 发表于 2023-10-12 20:16 来自手机 | 显示全部楼层
这样写确实没有多大意义
xad74 发表于 2023-11-1 07:48 | 显示全部楼层
那指针要来干嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

3308

帖子

3

粉丝
快速回复 返回顶部 返回列表