硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1805|回复: 4
收起左侧

自己写库如何预留插件接口?

[复制链接]

25

主题

232

回帖

307

积分

高级会员

积分
307
QQ
发表于 2024-8-22 13:33:57 | 显示全部楼层 |阅读模式
C语言写的库似乎很难预留拓展开发的接口啊?
但是有时候某些型号上需要特别兼容一个新功能,与原本的库模型兼容性不太好,又要改源码进行兼容。导致功能库越来越臃肿,而且很多用不上的功能。

有没有比较科学的方案留接口进行插件开发呢

回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
发表于 2024-8-22 22:36:01 | 显示全部楼层
库实现了核心功能,同时提供一个特殊接口,这个接口遍历链表查找需要的接口,特殊应用先注册自己需要的接口,需要的时候调用这个特殊接口执行
回复

使用道具 举报

25

主题

232

回帖

307

积分

高级会员

积分
307
QQ
 楼主| 发表于 2024-8-23 13:50:33 | 显示全部楼层
庄永 发表于 2024-8-22 22:36
库实现了核心功能,同时提供一个特殊接口,这个接口遍历链表查找需要的接口,特殊应用先注册自己需要的接口 ...

也就是要预留一些供注册的函数指针?然后原本的库在特定的位置对函数指针进行调用,插件就是开发合理的注册用的函数吗?
回复

使用道具 举报

85

主题

798

回帖

1053

积分

至尊会员

积分
1053
发表于 2024-8-23 22:36:14 | 显示全部楼层
yono 发表于 2024-8-23 13:50
也就是要预留一些供注册的函数指针?然后原本的库在特定的位置对函数指针进行调用,插件就是开发合理的注 ...

预留的话会导致内存占用较大,链表或者其他形式的动态增加或者减少会好一点
回复

使用道具 举报

25

主题

232

回帖

307

积分

高级会员

积分
307
QQ
 楼主| 发表于 2024-8-24 13:31:49 | 显示全部楼层
庄永 发表于 2024-8-23 22:36
预留的话会导致内存占用较大,链表或者其他形式的动态增加或者减少会好一点

链表的话如何确定行为逻辑呢?
比如数据流的解析,要开发在解析前新增一个预处理行为,和在解析状态机的某一态进行的回调行为
这都不是同一个流程节点上触发。不是很理解链表怎么指定在哪里触发。

有没有什么C语言库是支持插件开发的可供参考吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 00:38 , Processed in 0.039365 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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