我想研究一些好的C / C ++代码。代码应该:
我知道有1000多个开源项目。但我想听听你的建议。
我是Java程序员,我很好奇c / c ++中的好项目结构(文件),类/函数/文件的粒度,文档/注释,构建工具等。
欢迎多个建议,例如这是一个很好的Windows例子,那就是很好的纯C等。
答案 0 :(得分:9)
我特别提到memcached.这是一个非常简短,可读的代码的明显例子。
其次,我会推荐Apache web server。这是一个运行良好的开源项目,您将从语言,通用设计实践和网络/线程中学到很多东西。
答案 1 :(得分:5)
我投票支持nginx:http://sysoev.ru/en/作为一个非常好的C编程风格的例子
答案 2 :(得分:4)
Samba:一个大型,跨平台(基于POSIX),纯C,非常受欢迎的网络服务器。
Samba很好developer documentation,代码库本身非常井井有条;我已经没有任何问题深入到代码中的任何位置来回答我对其内部工作的问题或追踪错误。
答案 3 :(得分:4)
Google's Chromium非常庞大,但您无需对其进行全面分析即可欣赏其清晰,经过同行评审的结构。 此外,它是很好地完成开发人员环境部署的一个很好的例子。
答案 4 :(得分:3)
我发现Lua的实现是相当不错的C源码。但语言作为示例项目有点奇怪。
答案 5 :(得分:3)
Diomidis Spinellis在他的着作“Code Reading:The Open Source Perspective”中提出了一些建议,Addison Wesley,2003。ISBN 0-201-79940-5。
也许这本书对你有用。
答案 6 :(得分:2)
这是main file的relayd,它是一个处理负载平衡和故障转移的守护进程。它写得很好,功能齐全,干净的C代码。它足够大,你可以感受到一个“真实世界”的程序,但不是那么大,以至于你无法通过一些工作来理解它。非常适合安全,编写良好的网络代码,守护进程等。
除了谦虚之外,我帮助过的还有一点tiling window manager。它很小,但它是一个真正的wm,其他编码器有很高的标准(并把我带到他们身上!)...很适合学习基本的X东西。
答案 7 :(得分:1)
K&R有许多真实程序的好例子。例如,在第二版的第115页上,echo
命令有两个简单的实现。从那里开始,看看命令是如何实施的可能会很有趣。例如,GNU coreutils来源中有一个版本。可以在BSD来源中找到源自BusyBox的版本。
看看较新版本与教科书示例的比较可能会很有趣。为什么现实生活中使用的程序更长?有多少代码与新功能有关,与处理边缘情况有多大关系?你会如何用Java编写相同的代码?
答案 8 :(得分:0)
您肯定需要在C或C ++之间进行选择。明显的例子:错误管理的良好实践差异很大。
答案 9 :(得分:0)
至于C ++,我会向你推荐Qt library sources和KDE's source code及其程序。
编写精美的代码以及应该用C ++编写的方式。
答案 10 :(得分:0)
更多C ++建议:Examples of “modern c++” in action?