为了在C中制作组织良好的代码,您能为我推荐我应该阅读/学习的内容吗?
我想学习的一件事是在.h和.c文件中拆分项目的原则,在哪里和为什么,变量命名,何时使用全局变量...
我对处理此特定问题的书籍和文章感兴趣。
答案 0 :(得分:13)
一本涵盖了很多内容(适用于C和C ++)的好书是Large Scale C++ Software Design, by John Lakos:
另外,要记住一个好的经验法则是“永远不要做任何在头文件中分配内存的事情”
答案 1 :(得分:3)
关于文件布局,没有太多选择。
分区通常是以下之一(这里的包是单个库或二进制文件):
分区(1)很方便,因为属于特定包的所有文件都存储在一个目录中,因此可以轻松地移动包,但是使用这种方法将API标头从私有文件中删除并检测API更改并非易事。 (2)和(3)非常相似,它们使API发布和API变化检测变得微不足道,而(2)在你总是发布整个项目的情况下稍微容易一些,而(3)当你发布个别包时稍微好一些(例如用于修补目的)
在任何C / C ++项目中,通常都有以下常见软件包:
答案 2 :(得分:2)
特定于unix(而不是c
,natch),但也是如此:
使用所描述的构建结构,您可以使用很多文件。因此,每个逻辑单元都会获得一个标头和一个源文件。
答案 3 :(得分:1)
我认为你将在这个主题上获得最好的教育阅读,就是阅读Linux内核源代码。它有一个很好的源布局,基本上是标准的大型C项目。 Here也是如何将源文件放在一起用于BSD源的指南。
说真的,只需要开始阅读内核源代码并了解所有内容是如何组合在一起的。显然,这是一个计划周密的项目。