本节书摘来自异步社区《C语言接口与实现:创建可重用软件的技术》一书中的第1章,第1.4节,作者 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.4 扩展阅读
对于标准C库来说,ANSI标准 [ANSI 1990]和技术上等效的ISO标准 [ISO 1990]是权威的参考文献,但 [Plauger,1992]一书给出了更详细的描述和完整的实现。同样,C语言相关问题的定论就在于这些标准,但[Kernighan and Ritchie,1988]一书却可能是最广为使用的参考。[Harbison and Steele,1995]一书的最新版本或许是C语言标准的最新的资料,它还描述了如何编写“干净的C”,即可以用C++编译器编译的C代码。[Jaeschke,1991]一书将标准C语言的精华浓缩为紧凑的词典格式,这份资料对C程序员来说也很有用。
[Kernighan and Plauger,1976]一书给出了文学程序的早期例子,当然作者对文学编程没太多认识,只是使用了专门开发的工具将代码集成到书中。WEB是首批明确为文学编程设计的工具之一。[Knuth,1992]一书描述了WEB和它的一些变体及用法,[Sewell,1989]一书是WEB的入门介绍。更简单的工具([Hanson,1987],[Ramsey,1994])发展了很长时间才提供WEB的大部分基本功能。本书使用notangle来提取代码块,它是Ramsey的noweb系统中的程序之一。[Fraser and Hanson,1995]一书也使用了noweb,该书以文学程序的形式给出了一个完整的C语言编译器。该编译器也是一个交叉编译器。
double取自 [Kernighan and Pike,1984],在该书中double是用AWK [Aho, Kernighan and Weinberger,1988]程序设计语言实现的。尽管年龄老迈,但[Kernighan and Pike,1984]仍然是UNIX程序设计哲学方面的最佳书籍之一。
学习良好的程序设计风格,最好的方法是阅读风格良好的程序。本书将遵循 [Kernighan and Pike,1984]和 [Kernighan and Ritchie,1988]中的风格,这种风格经久而不衰。[Kernighan and Plauger,1978]一书是程序设计风格方面的经典著作,但该书并不包含C语言的例子。Ledgard的小书[Ledgard,1987]提供了类似的建议,而 [Maguire,1993]从PC程序设计的角度阐述了程序设计风格问题。[Koenig,1989]一书暴露的C语言的黑暗角落,强调了那些应该避免的东西。[McConnell,1993]一书在与程序构建相关的许多方面提供了明智的建议,并针对使用goto语句的利弊两方面进行了不偏不倚的讨论。
学习编写高效的代码,最好的方法是在算法方面有扎实的基础,并阅读其他高效的代码。[Sedgewick,1990]一书纵览了大多数程序员都必须知道的所有重要算法,而 [Knuth,1973a]一书对算法基础进行了至为详细的讨论。[Bentley,1982]一书有170页,给出了编写高效代码方面的一些有益的建议和常识。