读Andrew Koenig之《C陷阱与缺陷》

Andrew Koenig, 高巍, 王昕. C陷阱与缺陷. ISBN: 978-7-115-10623-0.

C语言诞生的时代距今已有近五十年。虽然近来C语言仍稳稳占据 TIOBE 排行榜前五的位置。但是这无法掩饰当时设计C语言所遗留的缺陷。

这本书是由作者的一篇论文改编而来,从词法,语法,编译过程到库函数等方方面面讨论了C语言编程者可能犯的错误。这些陷阱有的是C语言设计不合理,有的是因为程序员的粗心或者对于C语言编译与运行过程的不了解。可能你觉得这本书很适合已经学过C语言,并且希望进一步提高自己写的C语言的代码质量的人读。但实际上,这本书中的大多数内容都已经被同类教科书吸收了。如果你已经读过 C Primer Plus 或者《C和指针》那么再读这本书会发现很多内容都是重复的。另外这本书最初的稿子写于1985年,书中内容可能有些过时。所以,我个人认为这本书现在没必要推荐了。

既然,说到了 C 的陷阱,这里就多聊几句。很多人以为研究 C 是像研究物理或者化学一样,进行实验获取经验然后总结一套牛的不行的理论体系。但实际上, C 和任何编程语言一样都是构造性的。你研究半天搞出来的一个“特性”,其实说不定只是设计者疏忽造成的漏洞。只要更新一下规定就能消除掉。喜欢研究 ++i++ 这种东西和喜欢在游戏里把 Bug 玩成特性一样,多少是有点太沉溺于自己的世界,而不见外面的广阔了。不过玩 Bug 的人只要不在多人游戏作弊,其实很难给别人带来什么困扰。但故意写 ++i++ 这种东西,甚至鼓励别人写这种东西,就很令人难受了。如果是为了防止代码外泄还可以理解,如果你的代码就是给人看的,何必搞这种奇技淫巧呢?

软件开发是一种工程,而代码是给人读的。千万不要把可能造成机器或其它程序员混淆的写法带进自己的代码。了解这些陷阱是为了避开它,而不是故意在代码里写出这种陷阱,显得自己很高端。真正的好代码一般都不难读,也不容易造成歧义。想靠一些奇怪刁钻的写法显得自己厉害,最后只会让真正懂行的人觉得你中二。


求点赞,求收藏,求分享

欢迎关注我的公众号,微信搜索:知则

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值