2009-04-22 29 views
15

我想研究一些很好的C/C++代码。该代码应:真正的C/C++代码优秀示例的建议

  1. 良好的风格和结构,展示最佳实践
  2. 是一个现实生活中的程序(不举例或玩具)
  3. 不是太大,因此不会需要年龄分析它
  4. Windows和/或Unix

我知道有开源项目在那里的1000。但我想听听你的建议。

我的Java程序员,我很好奇,在C有多好项目/ C++的结构(文件),类/功能/文件,文档/评论粒度,构建工具等

多的建议是,例如欢迎这是很好的窗口例子,这是好的纯C等

+4

这应该是社区Wiki。 – 2009-04-22 21:48:53

回答

8

我想特别提到memcached.它具有明确的目的相当短的,可读的代码一个很好的例子。

其次,我会建议Apache web server。这是一个运行良好的开源项目,您将从语言,以及一般设计实践和网络/线程两方面学到很多东西。

2

这里的main filerelayd,这是处理负载均衡和故障转移功能的守护进程。它写得很好,功能齐全,干净的C代码。它足够让你体会到一个“真实世界”的程序,但并不是那么大,以至于无法用一些工作来解决它。非常适合安全,编写良好的网络代码,守护进程等。

谦虚一边,还有一点为我帮了X的tiling window manager。它非常小,但它是一个真正的WM,其他编码器有很高的标准(并且支持我!)...很好的学习基本X的东西。

4

Samba:一个大的,跨平台(POSIX为主),纯C,非常流行的网络服务器。

Samba有很好的developer documentation,而且代码库本身是非常有组织的很好;我没有任何问题潜入代码中的任何位置,以回答我关于其内部工作的问题或追踪错误。

3

我去找Lua的实施是相当不错的C源。但是作为一个示例项目,语言有点奇怪。

+0

许多历史来源资料包(包括当前的5.1.4)位于http://www.lua.org/ftp/,并且在http://www.lua.org/source上有一个到当前资源工具包的Web界面/5.1/ – RBerteig 2009-04-22 23:08:34

3

Diomidis Spinellis在他的书“Code Reading:The Open Source Perspective”,Addison Wesley,2003,ISBN 0-201-79940-5中有一些建议。

也许这本书能对您有所帮助。

URL http://www.spinellis.gr/codereading/

3

Google's Chromium是相当巨大的,但你不必去分析它所有的欣赏它干净,同行评议的结构。另外,这是开发人员环境部署很好的一个很好的例子。

+0

感谢您的建议!我只能将一个答案标记为“已接受”,但您的建议是我将要研究的第三个项目。 – k1udge 2009-04-23 22:31:59

-1

你一定需要C或C之间进行选择++的例子。一个明显的例子:错误管理的良好做法差异很大。

+0

我低估了,因为这应该是一个评论。 – nbro 2017-01-15 00:08:10

1

K&R有很多很好的真实程序的例子。例如,在第二版的第115页中有echo命令的两个简单实现。从那里,看看命令是如何随着时间的推移可能会很有趣。例如,GNU coreutils源文件中有一个版本。源自BSD的版本可以在BusyBox源中找到。

看到新版本如何与教科书示例进行比较可能会很有趣。为什么在现实生活中使用的程序更长?有多少代码与新功能相关,以及与处理边缘情况相关的代码有多少?你将如何在Java中编写相同的代码?