[美]AndrewKoenig《C陷阱与缺陷》作品简介与读书感悟

相信学习编程语言的同学一定都有这样的经历,当你自信地写完一段程序,却发现程序报错了,花了大半夜的时间去找bug,bug没找到,头发倒掉了不少。又或者,遇到一个bug,你也不知道改了哪里,再运行一遍,程

相信学习编程语言的同学一定都有这样的经历,当你自信地写完一段程序,却发现程序报错了,花了大半夜的时间去找bug,bug没找到,头发倒掉了不少。又或者,遇到一个bug,你也不知道改了哪里,再运行一遍,程序竟然又不报错了。

如果有人问我,异步君,我不想再写满是bug的程序了,那么我该去读一本什么样的书呢?

或许对于C语言之外的编程语言,我不能给出一个肯定的答案,因为其他的语言几乎没过一段时间就有一本新的教你规避bug的书出版,而往往新的总会比过去的更加全面,但如果你是学习的C语言,那么我有一个答案给你,这本书历时14年,仍是C语言中关于帮助你规避bug的图书里最热门,最畅销的。

异步君推荐的这本就是Andrew Koenig给我们带来的《C陷阱与缺陷》(C Traps and Pitfalls)。

《C陷阱与缺陷》是一本关于C语言程序员在编程中容易掉入的陷阱的书,自其出版以来,历经14载,它一直都被各个书评站点(或书评人)列入“重点推荐”的清单中。14年来,在它的18次印刷版本中,除去第二次印刷稍微修改过一些问题,以后的16次印刷,我们居然发现它的内容没有丝毫的变更!!!对于一本技术书籍来说,C陷阱与缺陷,我想其精确性与权威性也算得上是奇迹了吧。,

权威专家,经典之作

在C/C++领域中,Andy(Andrew Koenig的昵称)的名字对于每个人来说绝对是如雷贯耳。作为一个知名的专栏作者,Andy已经在各类杂志上面发表了上百篇的杂志文章,给很多人在技术进步的道路上带来了极大的帮助。

ACCU的Francis Glassborow对他的评价是:Andy是世界上最出色的几位C++专家之一。

1977年,Andy在华盛顿特区举行的一次SHARE(IBM 大型机用户组)会议上,他做了一次题为“PL/I中的问题与‘陷阱’”的发言。当时,他刚从哥伦比亚大学调至AT&T的贝尔实验室。在贝尔实验室工作的10年间,他积累了丰富的经验,深谙C程序员在开发时如果一知半解将会遇到多少麻烦。

当Francis Glassborow读到这本书的时候,他对这本书大加赞词:本书所揭示的知识,至少能够帮助你减少C代码和初级C++代码中90%的Bug。

如果你才学完《C Primer Plus》(或者是类似C语言基础之类的图书),对C语言有了一定的了解,想要进一步深入学习C语言,这本《C陷阱与缺陷》为你提供了一种另类的学习方法来帮助你巩固提升对C语言的理解。同时,如果你已经对C语言有了较为深入的了解,《C陷阱与缺陷》也能为你提出很多有用的建议,让你查漏补缺,必要时作为工具书使用也完全可行。

不走寻常路,先看看常见的错误特性

C语言中那些容易导致人犯错误的特性,往往也正是吸引编程老手们的特性。因此,大多数程序员在成长为C编程高手的道路上,犯过的错误总是惊人地相似!只要C语言还能继续感召新的程序员投身其中,这些错误就还会一犯再犯。

《C陷阱与缺陷》这本书一共八章,分别从以下几个方面全面地分析了在C语言的编程过程中可能会遇到的各种各样的问题。

● 词法“陷阱”

●语法“陷阱”

[美]AndrewKoenig《C陷阱与缺陷》作品简介与读书感悟

● 语义“陷阱”

● 连接

●库函数

● 预处理器

AndrewKoenigAT&T大规模程序研发部(莉贝尔实验室)成员。他从1986年开始从事C语言的研究,1977年加入贝尔实验室。在1989年ISO/ANSIC++委员会成立时,他就加入了该委员会,并一直担任项目编辑;他还是《RumirlatiorlsonC++》(C。

● 可移植性缺陷

除了以上的七点内容,Andy还在本书的最后一章给出了许多在C语言编程中实用的建议。

要理解一个C程序,仅仅理解组成该程序的符号是不够的。程序员还必须理解这些符号是如何组合成

还比如,Andy在第三章的“语义‘陷阱’”中提到:复制指针并不同时复制指针所指向的数据。对于C语言的初学者来说,这一细节引发的错误可以说是其在学习C的路程上不可缺少的。即使对于很多经验丰富的C程序员来说,也往往会因为忽略这一细节的知识点进而导致他们的程序产生预料之外的bug。

而这本书的内容几乎都是关于这些容易被人们忽略却又至关重要的编程小细节,如果一个C程序员想要真正地写出健壮的程序,避免出现由于这些小细节所导致的错误,除了用过去无数的血与泪得出教训外,一个更好的方法是:买下《C陷阱与缺陷》这本书,然后认真地读完它,它就像是一个有着丰富编程经验的前辈,能够帮助你摆脱你平时编程所遇到的绝大多数bug。

Andrew Koenig是世界上屈指可数的C++专家,他的这本书可能是最薄的一本C语言经典。它简明扼要地讲述了C程序设计中的陷阱和缺陷,包括词法陷阱、语法陷阱、语义陷阱、连接、库函数、预处理器以及可移植性缺陷等,最后一章还给出了关于如何减。

Andy的学习建议

在本书的第八章,Andy讲到了很多关于C语言编程的建议,这些建议对于读者是很有帮助的。在本章的开篇,Andy就给出了一个总的建议:最重要的规避技巧就是,知道自己在做什么。这一点建议看似简单而又容易做到,但是当我们回望自己的编程经历是会发现,那些由于疲倦,压力和种种负面因素导致的心不在焉才是让我们的程序出错的真正原因。

当然,Andy也给出了一些别的通用的建议。

● 不要说服自己相信“皇帝的新装”。

● 直截了当地表明意图。

● 考查最简单的特例。

● 使用不对称边界。

● 注意潜伏在暗处的Bug。

● 防御性编程。

即使不专门学C语言的人也可以拿出来翻翻 加入购书单已在购书单 2009-10-19 07:44:50添加 3. C 陷阱与缺陷 作者 : (美)凯尼格 著,高巍 译 出版社 : 人民邮电出版社评语 : 第2本 《C陷阱与缺陷》Andrew Koen。

此外,Andy还提到了一点:学习书中提到的这些细节其实并不难,难的是如何运用那些我们已经掌握的知识。这一点的意义远不止在编程中,即使在生活中,有时我们明知某些地方我们需要特别注意,但最后的结果仍是我们的马虎导致了出错。至于如何解决这一问题,书中虽然未有明确的答案,但如果你读完了这本书,我相信你心中一定会有一个答案。

平实语言,幽默风趣

对于一本涵盖了许多知识内容的计算机书籍来说,能够摒弃了那些华丽的笔法,用平实的语言清晰地讲述那些深奥的知识,就是一个巨大的优点。Andy在其平实和亲切的行文中,还不忘加上一些幽默的内容来让读者从烦闷的知识中放松一下,尽管有时这些笑话确实有点‘冷’。

Koenig: &34; 是一个很常见的德国姓,... 意义是“国王”。不过我的情况很特殊,我祖上是波兰和乌克兰人,不是德国人。这个名字其实是一个长长的波兰姓氏的缩写。... 我们家里人从来不这么说。

Moo: 谈到我这个姓氏,最重要的一点就是,其发音跟牛叫的声音一模一样

总之,作为一个C语言程序员,如果你想要写出健壮的程序,想要让自己少花些时间在令让抓挠的找bug中,Andy的这本《C陷阱与缺陷》绝对是你C语言进阶路途上的最佳选择。

好书推荐

对于那些渴望自己C语言编程能力的程序员来说,《C陷阱与缺陷》这一本书显然不足够,异步君在这里再推荐四本关于C语言的图书,其中《C Primer Plus 第六版 中文版》可供C语言初学者阅读学习(如果你希望巩固自己的C语言基础,这本书也很适合。),《C与指针》、《C专家编程》和《C语言接口与实现:创建可重用软件的技术》这三本书则是和《C陷阱与缺陷》一样更加适合那些已经拥有了一定C语言编程经验,想要在C语言的编程之路上更进一步的读者。

《C Primer Plus 第六版 中文版》

《C Primer Plus 第六版 中文版》详细讲解了C语言的基本概念和编程技巧。有了这本书,你大可扔掉其他任何关于C语言基础的书,这是一本可以陪伴你在一路上学习C语言的好书。

当你读到这本书,首先所能感觉到的特点就是这本书读起来亲切自然,讲述了深奥的知识的同时毫无枯涩烦躁之感,读起来就像作者与你面对面侃侃而谈。作者也自从书的第一页就在不断地向自己强调书的可读性与读者的阅读体验。

这本书真正的诠释了入门书籍的概念,却又可以为你指出深入的方向,让你在继续前进时不至于迷茫。此外,作者在每章末尾安排的复习题和编程练习题进一步强化了书中的重要信息,有助于读者理解和消化那些难以理解的概念。

新版第六版更是在之前版本的基础之上进行了全新升级,新版的内容涵盖了C语言新的进展以及C11标准的详细内容。

《C与指针》

《C和指针》是一本关于C语言学习的相当不错的书籍,尤其是对于刚刚入门的学习者来说。《C和指针》这本书涵盖了C语言的全部内容,作者在这本书中特别注重指针的讲解,除了头尾的几章,指针的话题几乎是贯穿了全书。

从基础概念到类型和数据结构以及一些容易让初学者犯错的地方讲解的十分细致,但又不带丁点学究气味,给人带来十分清新的阅读享受。更将指针这一让人挠头的概念,用以简洁准确的文字,配合贴切的图示,讲解的让人容易得其要领。

《C专家编程》

对于书中关于C语言历史的那部分,作者凭借着其独特的笔调让每一个读者内容都能燃起熊熊的八卦之火,其中又不乏实用的知识。关于书中那些C语言的编程内容,作者作为曾经SUN编译器小组的成员,向我们分享了很多C语言开发中的实际经验。

为了帮助读者更好地领会指针、数组和它们两者间的关系,作者更是花费了足足三章来进行相关的讲解。

《C语言接口与实现:创建可重用软件的技术》

C语言接口与实现》这本书可以看作是接口设计的范本,该书用C语言进行数据结构的封装,书中的基本思想就是一个数据结构和围绕它操作的一系列函数。

《C语言接口与实现》这本书中介绍的接口种类非常多,几乎适用于所有接口类型。从内容上来说,这是一本非常优秀而且实用的工具书。从编程思想上来说,这本书能够帮助你培养出极其健康的代码规范和编程思想。

《C陷阱与缺陷》Andrew Koenig Andrew Koenig的成名作,能帮助初学者减少90%的错误。一些错误(比如赋值符、运算符优先级等)还是不时的会在自己的程序里出现,只是已经打过预防针了,很容易发现。《C专家编程》(LinDen,P。.

上一篇 2023年02月06 16:08
下一篇 2023年04月25 11:43

相关推荐

关注微信