[请教]keil如何把.h的部分封装到库 外部不可见

2019-12-18 18:46发布

本帖最后由 ywlzh 于 2018-9-20 14:19 编辑

keil 封装成库 我们都知道怎么弄。

比较苦闷的是 老板要将.h里的一些关键的宏,函数,连寄存器的名字都不想给客户看,只看一些基本操作的函数名,告诉客户如何操作就行了。
可又不想改变现有的代码结构,文件层次,免得后期不好维护。

怎么弄的,有人搞过没有。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
38条回答
ywlzh
1楼-- · 2019-12-20 23:11
flamma 发表于 2018-9-20 16:33
这个要一开始就考虑要封闭,基本上是用桥接设计模式(impl)来实现。

上网查了下 收获颇多

https://github.com/kamranahmedse/design-patterns-for-humans

https://segmentfault.com/a/1190000010706695

很好的一个设计思想
ywlzh
2楼-- · 2019-12-21 04:52
日日♂夜夜 发表于 2018-9-20 17:50
你把现在这份代码(.c .h) 编译成库
然后在.h里面删掉不想被他们知道的东西,
最后把简化版的.h和.a发过 ...

在.h文件里删掉不想被他们看到的东西,可是这些东西是自己库里需要调用的,没有声明,可以被调用到吗?
muniao
3楼-- · 2019-12-21 05:35
 精彩回答 2  元偷偷看……
ywlzh
4楼-- · 2019-12-21 09:51
radar_12345 发表于 2018-9-20 17:48
如果这样,为什么要使用宏呢,写成函数不行吗,编译后文件还小些

其实 问题讨论这个地步
我已经意识到
需要重新设计下程序结构了,大的改变倒还没有什么,功能都是正常的
我只想把老板吊起来打一顿 可是工资又是他发的
只好接受这份磨砺了
Gorgon_Meducer
5楼-- · 2019-12-21 09:57
模块的.c不应该include 模块对外的接口头文件,就是这个道理。
日日♂夜夜
6楼-- · 2019-12-21 15:14
ywlzh 发表于 2018-9-20 17:59
在.h文件里删掉不想被他们看到的东西,可是这些东西是自己库里需要调用的,没有声明,可以被调用到吗? ...

编译成了库以后内部引用就不需要.h了,只是外部引用需要函数入口
你这应该补一下C的编译过程

一周热门 更多>