现在,我已经把自己的头围绕在“C”语言之上,以致于我觉得足够精通以编写干净的代码,所以我想将注意力集中在项目架构指南上。我正在寻找一个很好的资源,涉及以下主题:'C'项目体系结构指南的建议?
- 如何创建一个提升代码可维护性的接口,并且可用于将来的升级。
- 图书馆创作指南。例如,我应该何时考虑使用静态库和动态库。如何正确设计ABI来应对任何一个。
- 头文件:什么时候分区。关于什么时候使用1:1 vs 1:很多.h到.c的例子
- 任何你觉得我错过了但是在尝试构建一个新的C项目时很重要。
理想情况下,我希望看到一些示例项目,从小到大,并根据项目大小,功能或客户了解架构如何变化。
你会为这些主题推荐哪些资源?
好的清单。另一件与标题相关的事情是确保每个标题都是独立的 - 它包含了它所需的任何标题,所以你可以包含它,而不必担心你需要什么。 – 2010-05-08 03:56:16
Re:公共接口中的void指针 - 我更喜欢使用typedef处理的不透明结构。这样你就不必重新铸造,它提供了同样的实施保护。 http://en.wikipedia.org/wiki/Opaque_pointer#C – 2010-05-08 04:33:41
同意Matt B.不要返回void *,请使用漂亮的typedef'd抽象数据类型。在我的示例中,在“以您最喜欢的语言实现一个类”的问题中:http://stackoverflow.com/questions/2702450/implement-a-simple-class-in-your-favorite-language/2771898#2771898 – 2010-05-08 10:10:13