@懒猫爱飞
在这种认知之下,我的.c和.h可以完全不一一对应。
比如说,.h是对外的开放接口,这个接口,绝大多数情况下指的是 函数 或者 宏。
但是,从接口最少信息开放的原则,实现中肯定会有很多无需对外开放,被外部引用的 过程中函数,宏。
一个很特别的例子是,很可能,在这些过程中,出现了一些 可以划分为一个 更小整体的 函数群。
但这个函数群显然是不需要对外开放,而它在这整个完整的实现中,有可能担任两种角色:
1.它是一个相对独立的特殊功能,只需要用一次,但它和代码中的其他部分,不存在平行的关系。
举个例子说人话吧。
我是潮汕人,对于大多数非潮汕人特别是非广东人,我这样解释就可以了,我不用多说一句我是潮阳人,第一,我说了,它们不一定知道,第二,对于他们来说,潮汕人就是潮汕人,不需要区分什么潮阳人潮南人潮州人。
2.这个例子在这个实现中,可以多处被复用,但是,它对于这个实现之外,却意义不大,因此没必要开放成一个独立的公用子模块。
在上述这两种情况之下,这个更内层的函数群,都完全具备理由,被视为一个单独的源文件实现存放代码(这有助于代码管理,也有助于测试)
但是,它本身作为一个模块的意义不大,也不需要和那些真正被外部调用的接口一起对外开放。
在这种情况下,
@懒猫爱飞 有没考虑过,这个时候,就不需要一个.c对应一个.h成对出现了?