封装:
达到这样的目的,首先要能隔离变化,内部数据结构,内部使用的函数和全局变量等等,把这些代码封装起来,不会影响系统的其他部分。
其次降低复杂度。接口的最小化,最小化的接口容易被理解和使用,封装了细节,只暴露最小的接口,使得系统简单明了,在一定程度上降低了系统的复杂度。
1.隐藏数据结构,
对于内部数据结构,放到.c文件中,不要放到头文件中,然后,提供操作该数据结构的函数,哪怕只是存取数据结构的函数。
2.隐藏内部函数 ,
在头文件中,只放最小接口函数的声明。
在.c文件上,所有的内部函数都加上static关键字。
3,禁止全局变量。
除了使用单件模式的情况外,任何情况下都要禁止使用全局变量。
a.全局变量始终都会占用内存空间,共享库的全局变量是按页分配的,即使一个字节也会分配一页,浪费空间。
b.多线程时共享冲突。