◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇   二驳《谭浩强大师的世界纪录》等文   作者:注意版本   因有人质疑谭浩强的贡献,而引起我的反驳,顺便反驳了文中的三个例子。 就算他的C语言教材很滥,只要其BASIC语言贡献大,也就够了。称大师或许言过 其实,称名人或先驱者应该可以。   现在很多人揪住这几个例子,刚好是我的专业,不想读者被误导,我只好再 回复一下。   例1是数据溢出的很好例子,完全可以在书中适当的地方展开来写。原文 “将变量b改成long型”,原书作者并没有说只改一处。就算只改定义,打印输 出部分会在编译时会报类型不匹配warning错误,敏感的程序员当然也要相应修 改。作为老师当然应该能够给学生讲清楚。   计算机教材/书籍,按章节顺序去看往往行不通。遇到看不懂的地方不必停 下来,看了后面可以再返回来看。计算机知识时常是平面的结构化的,而非线型 的。因为printf()函数没有学就不能用,对作者要求高了一点。   例2赋值表达式,教材中给出那么多怪异的形式,而不说明那是不提倡的风 格,确实不妥。要我找出支持它的编译器并非没有可能,但没有必要。   再说例3,对变量进行类型定义,主要是程序员和编译器之间的事。在机器 语言/汇编语言来看,变量类型就少很多。即使在C中,很多类型也是可以转换的; 这种转换也只是程序员和编译器之间的事。我估计很可能早期版本ANSI C对此没 有作严格限制。后来就算限制了,也只是要求程序员在switch语句强制加上类型 转换而已。这些限制主要是为了减少错误,形成良好编程习惯。但这些严格限制 有时会使得旧程序无法编译,因此编译器往往是限制多少可自由设置,以兼容查 错和利旧。   时进先生抱怨潭浩强的教材中的源码格式风格不统一,并给出了K&R推荐的 格式。“源码风格算不算入门级的问题”?中国的本科教材确实有重理论轻实践 的倾向。源码风格,变量命名规则,要避免的不良编程习惯等很多重要内容,教 材中太缺了。"编译"、"链接"、"生成"这些环节,乃至程序调试,这些与编程环 境等实践性环节相关性太大的内容,一般写在实验指导书中,较少写在教材中。 其实这些内容非常重要,没有涉及的原因很可能是教材不能变化太快。   计算机是年轻人的天下,不应苛求那么大年纪的谭老师。不过,没有年轻人 写的计算机教材,应该让人遗憾。   赞同杨大卫先生的观点,值得推荐。对于人身攻击的,没必要回复。 (XYS20090315) ◇◇新语丝(www.xys.org)(xys3.dxiong.com)(www.xysforum.org)(xys2.dropin.org)◇◇