Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2359190
  • 博文数量: 527
  • 博客积分: 10343
  • 博客等级: 上将
  • 技术积分: 5565
  • 用 户 组: 普通用户
  • 注册时间: 2005-07-26 23:05
文章分类

全部博文(527)

文章存档

2014年(4)

2012年(13)

2011年(19)

2010年(91)

2009年(136)

2008年(142)

2007年(80)

2006年(29)

2005年(13)

我的朋友

分类: C/C++

2010-08-02 10:03:03

在8.1 建议一节. 作者说到他有个例子:
while (c == '\t' || c = ' ' || c == '\n')
      c = getc(f);

这个例子在C语言中是非法的, 因为赋值运算符=的优先级比while的条件表达式中其它运算符的优先级都低, 因此上例是这样被编译器理解的:

while( (c == '\t') = (' ' || c == '\n'))
      c = getc(f);

...
数以千计的人读过这个例子, 但是却没有人注意到其中的错误, 直到Rob Pike为我指了出来.

作者在紧接着的一段继续说, 手稿先是在贝尔实验室内部审阅, 后来Adison-Wesley出版社又将该书插入送出外审. 但是, 没有一个审阅者注意到这个错误.

显然, 作者是在此表达对Rob Pike的敬意, Rob Pike何许人也, 当然不仅仅是为别人的手稿能提出点建议, 与Ken Tompson协同发明utf-8, Plan 9操作系统的设计者, ... 现供职于google. 牛人的牛, 纯非偶然. 一点细小的地方都不会放过. 作者并没有象Knuth那样向悬赏求错, 但Rob哥受人之托, 忠人之事, 贝尔实验室的审阅者, 只要有足够的细心, 从技术上个个都能看出这一点错误, 但却没人注意到.

在<<代码之美>>一书中, K&R中的K先生(Kernighan)贡献了一文, 说他看到的最美的代码就是在跟这位Rob Pike说到如何实现一个正则表达式时, Rob回到办公室, 一两个小时之后, 拿出了30行左右的极其精简的代码, 实现了基本的正则表达式匹配. 绝对的实干家.

向Rob Pike致敬!
阅读(924) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~