smc*_*ron 15
创建只包含使用模块所需内容的头文件.在相应的.c文件中,在外部(例如辅助函数)静态创建任何不可见的内容.在外部可见的所有内容的名称上使用前缀,以帮助避免命名空间冲突.(如果一个模块跨越多个文件,事情会变得更难.因为你可能需要暴露内部事物而不能用"静态"隐藏它们)
(如果我要尝试改进C,我要做的一件事是将"静态"作为函数的默认范围.如果你想在外面看到一些东西,你必须用"导出"或"全局"或其他东西标记它类似.)
j_r*_*ker 10
OO技术可以应用于C代码,它们只需要更多的规则.
stdio库 - 一切都围绕不透明的FILE*句柄组织.围绕这个原则组织了许多成功的库(例如zlib,apr)structs的所有成员都隐含public在C中,所以你需要一个约定+程序员规则来强制执行有用的信息隐藏技术.选择一个简单的,可自动检查的约定,例如"私人成员以'_'结尾".