遵循“C的最佳用法是什么”的问题。
Linux内核似乎是一个著名的、被认为是非常优秀的C程序。但它是主流“最佳实践”C语言的一个很好的例子吗?
发布于 2009-01-14 03:59:05
我已经为此准备好了,但是Linux内核是一个学生项目,已经失控了。更严重的是,从编程的角度来看,Linux内核做得很好的是制定了一套非常严格的设计和编码指南,使大量的人能够在做出贡献的同时将所有东西都整合在一起。
我信任的那些毕生致力于操作系统的人告诉我,BSD内核是优秀的C编程和优秀的操作系统设计的一个更好的例子。我对伯克利的教授有足够的了解,所以我对这种说法并不感到惊讶。
更广泛地说,操作系统内核是高度专业化的东西-没有关于内核的主流。如果你想要好的C实践的例子,你可以试试Kernighan和Pike在The Practice of Programming上的书。或者,如果你想研究一个真实的系统,implementation of Lua足够小,你可以阅读它,设计得非常好,而且非常便携-可以在任何使用ANSI编译器的平台上运行。
对于主观和争辩的回答,我深表歉意:
发布于 2009-01-14 00:56:10
你说的好例子是什么意思?我相信Linux内核是一个用C写得很好的内核,但也有一些问题,其中许多问题正在清理中。但是,就使用它作为如何编写通用C代码的示例而言,我认为它不太适合。阅读和理解内核会让你学到很多关于C语言的知识,但你在内核中找不到的是任何可以提及的库。标准库不可用。例如,您将看到"printk“而不是"printf”等等。也有一些黑魔法。内核是一个非常特殊的情况。我不会使用它来寻找最佳实践,比方说,如果你正在编写一些通用的应用程序,比如文件管理器或数据库。
发布于 2009-01-14 00:55:27
是的,是这样的。
如果您不想被内核的细节搞得不知所措,可以从用C编写的一些Linux实用函数开始。有关如何获取源代码的详细信息,请参阅对this question的回答。
另一个阅读C源代码的好地方是C自己的Standard Library。
最后,还有一个最近的C项目,我听说它很不错,那就是Git。
https://stackoverflow.com/questions/441505
复制相似问题