◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇   谭浩强大师的世界纪录   作者:张云楼   中国计算机界的第一牛人非谭浩强教授莫属,几乎无人不知无人不晓,其原 因可能与他的多如牛毛的著作的封底处赫然在目的个人简介有关。其中写道,他 创造了科技著作数量、读者人数和书籍发行量的3个世界纪录;还有如下评述: 中国工程院长宋健称他为“教授计算技术的大师,普及现代科技之巨搫”,《计 算机世界》报把他评为我国“20世纪最有影响的IT人物”10个人中的第2位,他 的功绩是把千百万群众带入计算机大门。   本人是个计算机教师,教了10几年的C语言,多次使用谭教授的《C程序设 计》,由第一版到第三版,封皮上印着的发行量从300万到1000万。然而十年前 在教学过程中我就发现了其中大量的低级错误,不敢说我水平高,或者大师水平 低。之所以说是低级错误,因为都是学生发现的。把书上的说法拿到机器实验通 不过,只好认真查查,C语言的发明人怎么说的,ANSI C标准怎么说的。如此一 来明白了,大师也是人,也会犯错误,不值得奇怪。奇怪的是,十年过去了,一 本书又克隆成了4本,可是这些低级错误依然存在。谭教授在前言中说心中永远 装着读者,处处为读者考虑,要和读者将心比心,每一句话都要反复斟酌,一个 好的例子要苦苦思索好几天。真的吗?   谭教授确实是最有影响的人物,看了国内许多C语言教材,发现大多感染了 谭教授的错误,所以值得一说。下面举几个例子。   1,《C程序设计》例3.3说在TurboC上32767+1没有得到32768,得到的是 -32768。然后作者说“将变量b改成long型就可以得到预期结果32768了”,敢问 谭教授上机试过没有,我试过了,不行。   2,《C语言程序设计》58页,《C程序设计》63页,说“变量可以作左值,… 常变量不能作左值”,有常量、有变量,什么叫常变量呢?接下来在讲解了表达 式“(a=3*5)=4*3”算出的a值是12之后说“赋值表达式能够作为左值”,真够经 典的了,不知谭教授怎样创造出来的?   3,《C语言程序设计》103页,《C程序设计》105页,在介绍switch语句时 一本正经地说:“ANSI 标准允许switch后面的“表达式”为任何类型”。为此 我费了挺大力气找来了ANSI C 标准,是这样说的:“The controlling expression of a switch statement shall have integer type.”,不知谭教 授真的看过ANSI标准?   这里说了3个例子,如果是错误的话,乘上100万,算不算又一个世界纪录呢?   偶而听到有人说,中国学生编程能力差,和谭教授的世界纪录有关。我不敢 苟同,不过,如果说中国学生编程能力强,肯定谭教授功不可没。 (XYS20090311) ◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇