学习C语言的必读书籍
清华复印件和习题集;机械翻译版(新版,旧版):习题集
这是迄今为止所有编程语言书籍中最受推崇的经典,是任何C程序员的必读之作。因为它是由C语言的设计者丹尼斯·M·里奇(Dennis M.Ritchie)和著名计算机科学家布莱恩·W·柯尼根(Brian W.Kernighan)共同编写的,所以被戏称为“K & amp;中华人民共和国.正是它首先推出了“Hello World!”程序,这个程序几乎成了后来任何一本入门编程语言书中的第一个例子。
就像C语言本身紧凑而强大一样,这本书轻薄短小,充满张力。通过简洁的描述和典型的例子,全面、系统、准确地描述了C语言的特点和C程序设计的基础。
方法,涵盖基本概念、类型和表达式、控制流、函数和程序结构、指针和数组、结构、输入和输出、UNIX系统接口和标准库。
简洁明了是这本书最大的特点。这本小书可以教给你很多比它厚几倍的知识。我认为那些善于拼凑几百页甚至几千页的技术写作者应该向K & amp;r学习。对于中高级程序员来说,如果想快速获得C语言的严肃知识,又不愿意多花哪怕一点点时间,这本书都是首选。
对了,这本书的索引很优秀,很有实用价值,可能首先归功于正文的简洁。另外,虽然看起来像教程,但其实是职业程序员的指南。如果你没有任何其他语言编程背景或者C语言基础知识,这本书可能不适合你的C语言启蒙读物。
2.专家编程
专家编程
C语言是一本正经的程序员语言,但这并不意味着C语言的书一定要板着脸说教。在这本被C程序员戏称为“鱼书”(封面是一条“丑陋”的腔棘鱼)的书中,作为SUN编译器和操作系统核心开发团队的一员,Peter生动地展示了自己深厚的技术沉淀、丰富的项目经验、高超的写作技巧和招牌式的幽默。在这部作品中,作者以流畅的文字和幽默的笔法,将轶事、典故、智慧和幽默自然地融入到技术描写中,读起来像小说一样,十分有趣。这本书讲述了C语言的历史、语言特点、声明、数组、指针、连接、运行时和内存使用,揭示了C语言中许多晦涩难懂的地方,尤其是声明、数组和指针以及内存使用的细节。如果你想成为一个专家级的C程序员,这些内容都是必须要掌握的。与其他充斥着抽象实例的C语言书籍不同,这本书充斥着大量来自现实世界的C编程实例,对C程序员有很高的参考价值。此外,每一章都以非常有趣的“Relax”结尾,附录A《程序员求职面试秘诀》是任何语言的程序员在求职前增强自信心的好材料。
我怀疑,真正的C专家可能不需要看这本书——从内容、组织和行文风格来看,这是一本从新手到专家的轻松愉快的高级读物,所以应该有更广泛的读者群。初级程序员往往需要热情的鼓励。在阅读这本书的过程中,你会被作者对编程的热情深深感染。
世界上没有完美。我觉得这本书的缺陷在于,和大多数平庸的C语言书一样,在多余的地方加了一章关于C++的内容。今天,这种描述既不全面也不公平。不过,笔者在1994站在一个C程序员的角度观察C++也就不足为奇了。3.C语言参考手册(第五版)
影印版(机械工业出版社),中文版(机械工业出版社)
在C语言参考手册中,Samuel P. Harbison和Guy L. Steele编写的《C: A Reference Manual》是非常优秀的一本。本手册第五版增加了对C99标准的介绍,以适应新时期C语言学习的需要。本书分为两部分,第一部分重点介绍C语言的特点,第二部分全面论述C标准库。这本书涵盖了C99,C89,传统C,所有版本的C运行时库和编写与C++兼容的C代码。
这本手册只有中等厚度,却比其他“比它还厚”的参考手册更清晰地描述了C语言的今昔各个方面。整个手册的技术细节描述准确,组织清晰,内容完整、详细、简洁。可以说在广度、深度、准确性上都是出类拔萃的。对于中高级C程序员来说,这本手册值得保留一桌,几乎可以肯定比K &;r的作品使用频率更高。
4.《C语言的接口和实现:创建可重用软件的技术》,机械工业出版社。
c语言接口与实现:创建可重用软件的技术
C语言能够存活30多年的一个重要原因就在于它的适应性。在这个“复用”、“面向对象”、“组件”、“异常处理”等先进机制满天飞的时代,C语言凭借其小巧优雅的语言特点,仍然能够在一定程度上满足现代软件架构的要求。但要达到这个水平,就必须在C的应用技能上达到最高水平,在嵌入式系统、系统软件和要求高性能的系统开发中,开发人员必须达到这个水平,掌握C语言的高级特性,才能同时满足高效性、灵活性和可重用性的要求。遗憾的是,虽然有大量关于C语言技术的书籍,但是关注这一高峰领域的作品却屈指可数。David Hanson的C接口和实现是其中的佼佼者。
David Hanson是业界著名的免费编译器lcc的合作者。在这个项目中,他负责提供一个高度可重用的基础设施。在不断的实践中,他完全用ANSI C形成了一套可复用的组件库。该组件库架构清晰,性能优异,提供了许多高级功能,如Win32类SEH异常处理机制、可移植线程库、高性能内存池和丰富的可重用数据结构组件。大卫·汉森(David Hanson)在本书中写下了他在创建这些组件的过程中积累的经验以及对它们源代码的精妙分析。这样的作品当然是C语言领域的杰作。难怪已故著名技术作家理查德·史蒂文斯对这本书赞不绝口。他说,“这本书里的技术已经被大多数C程序员遗忘太久了。”这本书对于想要在C语言应用上达到最高水平的核心程序员来说,是不可多得的必读之作。
除了以上四本书,我还要推荐安德鲁·克尼格的《C陷阱与缺陷》(人民邮电出版社)和戴特尔父子合著的两本书《C如何编程》。
专家编程
安德鲁·克尼格是世界上为数不多的C++专家之一,他的书可能是最薄的C语言经典。它简要描述了C编程中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、链接、库函数、预处理程序和可移植性缺陷。最后一章也给出了如何减少程序错误的建议,并参考前面几章的答案。虽然这本小册子是在C89标准制定之前写的,但即使在C99标准已经颁布的今天,书中提到的大多数陷阱和缺陷仍像15年前一样提醒着我们。
c程序设计课程
Deitel父子合著的《如何编程》一直是非常好的C语言入门课程。我手头的中译本叫《C程序设计教程》(机械工业出版社出版,原书第二版)。除了对技术的正式描述(辅以许多简洁的例子),每章后面都是概述、术语、常见编程错误、良好的编程习惯、性能建议、可移植性建议、软件工程回顾、自测练习和答案。全书思路清晰,条理分明,易于阅读和理解。值得一提的是,有很多入门书看一遍就可以扔掉,这本是个例外。
结论以上书籍很大程度上局限于描述C语言和标准库本身。如果想学习更专业和领域相关的C编程技术,可以在阅读这些书籍的基础上继续查阅专业书籍。另外,在C语言书籍领域,也有很多同等水平的作品,这些书都只是基于我自己的阅读经验。