打印
[其他]

关于回调函数在结构体中的使用

[复制链接]
1264|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
定义一个结构体 不是多了一层调用吗?

使用特权

评论回复
5
xiaoqizi| | 2023-10-12 18:33 | 只看该作者
这样操作方便各个模块之间做接口调用

使用特权

评论回复
6
wowu| | 2023-10-12 19:07 | 只看该作者
没看明白这样使用的优势在哪里

使用特权

评论回复
7
renzheshengui| | 2023-10-12 19:41 | 只看该作者
为什么要把回调函数放在结构体里边呢?

使用特权

评论回复
8
caigang13| | 2023-10-12 20:16 | 只看该作者
这样写确实没有多大意义

使用特权

评论回复
9
xad74| | 2023-11-1 07:48 | 只看该作者
那指针要来干嘛

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

72

主题

3307

帖子

3

粉丝