遵循"什么是C的最佳用途"问题.
Linux内核似乎是一个着名且非常好的C程序.但它是主流"最佳实践"C的一个很好的例子吗?
我已准备好为此而努力,但Linux内核是一个失控的学生项目.更严重的是,从编程的角度来看,Linux内核做得很好的是制定了一套非常严格的设计和编码指南,这使得很多人可以在仍然拥有所有东西的同时做出贡献.
谁取得了操作系统自己一生的工作的人,我相信告诉我说,BSD的内核是一个多好的C程序设计和良好的OS设计的最好的例子.我非常了解伯克利的教授,我对此声称并不感到惊讶.
更广泛地说,操作系统内核是高度专业化的东西 - 内核并不是主流.如果你想要好的C练习的例子,你可以尝试Kernighan和Pike的关于编程实践的书.或者如果你想研究一个真实的系统,Lua的实现足够小,你可以读取它,设计得非常好,并且非常便携 - 可以在任何带有ANSI C编译器的平台上运行.
为主观和议论性答复道歉:(
好榜样是什么意思?我相信Linux内核是一个写得很好的内核,有一些问题,其中很多都在被清理.但是,就使用它作为如何编写通用C代码的示例而言,我不认为它非常适合.阅读和理解内核会教你很多关于C.但你在内核中找不到的任何库都可以.标准库不可用.因此,例如,您将看到"printk"而不是"printf"等等.还有一些黑暗魔法.内核是一个非常特殊的情况.如果您正在编写一些常规应用程序(如文件管理器或数据库),我不会用它来查找最佳实践.
是的.
如果您不想对内核的详细信息感到不知所措,可以从使用C编写的一些Linux实用程序函数开始.有关如何获取源代码的详细信息,请参阅此问题的答案.
另一个阅读C源代码的好地方是C自己的标准库.
最后,我听到的一个最近的C项目是Git.