C语言编程

初阶读物

Linux C/C++编程一站式学习

作者:宋劲杉

个人很喜欢这本书,同时又是「一站式」学习,在Linux下结合此书学习C/C++高效,所以就放在第一本了。

此书内容涵盖极广:C的基本语法、简单的数据结构与算法、C与汇编的联系、计算机系统结构、操作系统、正则表达式、TCP/IP 以及 Linux 系统编程,无所不包。从该书网站最新的内容来看,作者正在添加C++及动态语的部分,赞!

如此一来似乎样样通而样样不精,其实不是这么回事。作者将内容穿插得非常好,用十分简明的方式把每个方面最重要的东西都阐明清楚了。所以,其实这是本入门书,当然也适合各个方面都有所了解之后用。

11年3月该作者又出版了《一站式学习C编程》(升级版),弱化了Linux和嵌入式的方向性,而且也变的更适合零基础读者阅读,在「它和前一版有什么不同」中作者有这么一段话:「虽然我在上一版中信誓旦旦地说这是一本面向完全零基础读者的书,但现实教育了我,要写出一本让任何零基础读者都看得懂的书是一门复杂的系统工程,我只能努力接近这个目标,而永远达不到这个目标。」很幸运的是这本编程导论小册子弥补了这一点O(∩_∩)O哈哈~

作者在出国后在原来的《Linux C编程一站式学习》基础上更新,并以中英双语写作——Learning Linux C/C++ Programming from Scratch,英文版目前在写第四部分——from C to C++。完整的旧版本见 Linux C编程一站式学习。国内能有如此对自己作品负责的技术作者实在是不多见,力荐!

C Programming: A Modern Approach

Author: K. N. King

中文书名:C语言程序设计:现代方法 (豆瓣)

书如其名——现代方法,讲解了一些适应现代大规模编程的方法。这本书的第一版有超过225所学校用过,比如MIT, Stanford, UC Berkeley, Caltech等等牛校。第二版新增了很多内容,当然,书也厚了很多,很多... 书中内容讲解清晰,译作质量也很好,适合自学用的教材。

C Primer Plus

Author: Stephen Prata

中文书名:无

C语言的百科全书,既有深度又有广度,可以作为工具书使用。典型的国外教材,非常非常厚,厚到有点让你觉得罗嗦。

第6版已经在国外出版,包含了最新的C11标准的介绍。不过目前来看C99才是最普遍的呐。

本书第五版的中文翻译版翻译质量超级烂,如果你不慎买了这本书,送人会误人子弟,烧了会污染环境,就当废纸用好了。想办法去弄一本英文原版的吧,具体方法我才不会告诉你哩。

进阶读物

在没有读完初阶读物前最好不要来读此类书籍,否则身心将受到巨大的摧残。

The C Programming Language 2nd edition

Author: Brian W. Kernighan, Dennis M. Ritchie

中文书名:C程序设计语言:第2版•新版 (豆瓣)

此书简称K&R,由C语言的创建者撰写,其品质毋庸置疑。写的十分精简,不过并不适合入门,对于那些已经对C有一定了解之后的人来说是一种享受。

C Programming FAQs: Frequently Asked Questions 2nd edition

Author: Steve Summit

中文书名:你必须知道的495个C语言问题 (豆瓣)

本书是Summit以及C FAQ在线列表的许多参与者多年心血的结晶,是C语言界最为珍贵的财富之一。适合对C有一定了解和一定编程实践后再来看, 1995年出版了该书的英文第二版,中文版算是第一版吧,2009年出的,所以说与英文原版有较大改进。

Expert C Programming

Author: Peter van der Linden

中文书名:C专家编程 (豆瓣),中文译者:徐波

书的内容虽然很有深度,涵盖范围也很广,但是作者语言幽默,读起来还是不那么枯燥的。

Pointers on C

Author: Kenneth Reek

中文书名:C和指针 (豆瓣),中文译者:徐波

同上,中文译者仍为徐波,翻译过来的读起来偶尔会有点拗口,全书通过指针这根主线来组织,但内容其实大大超过了指针的范畴,涵盖了很多C语言的高级话题。

C Traps and Pitfalls

Author: Andrew Koenig

中文书名:C陷阱与缺陷 (豆瓣)

书很薄,英文原版是1989年1月11日出版的,那时候ANSI标准都还没出来。可想而知,书中所提到的缺陷已经在C89 & C99中得到了相当的改善,所以看之前得对C89 & C99有所了解才能吸收最大的价值。书虽然很老了,但是其中的思想大家还是可以借鉴的。

C: A Reference Manual

Author: Samuel P. Harbison & Guy L. Steele

中文书名:C语言参考手册 (豆瓣)

适合在写程序的时候作为参考,对每一条函数都有C89 & C99等详细使用区别。

The Standard C Library

Author: P.J. Plauger

中文书名:C标准库 (豆瓣)

英文原版是1991年1月11日出版的,中文翻译版是2009年7月出版的。本书精辟地讲述了每一个库函数的使用方法和实现细节,同时还给出了实现和测试这些函数的完整源代码。

Writing Solid Code

Author: Steve Maguire

中文书名:编程精粹 (豆瓣)

英文原版是1993年1月1日出版的,2009年人民邮电出了中文翻译版,1993年电子工业出版社出的基本没有了。

本书篇幅不长,主要讲的是微软团队在开发大型软件过程中所总结的经验。

ISO/IEC 9899:1999, Programming languages — C 2nd edition

中文书名:ISO C99规范

一切关于C语言的疑问,只有一件东西最权威,那就是ISO的规范。但这不是正式出版物,是类似法律文本的技术说明,而且只有英文版。新手阅读,提防吐血而亡。而且即使有ISO 规范,也不见得各编译器都去实现。

P.S. 前几年发布了C11标准,估计还得过很多年才能普及开来吧。