《C程序设计语言》是计算机编程领域的一本经典著作,由Brian W. Kernighan和Dennis M. Ritchie合著,通常被称为K&R。这本书深入介绍了C语言的基础和高级特性,是许多程序员学习C语言的首选教材。然而,中文版的翻译存在一些问题,可能对读者理解内容造成困扰。
在翻译质量方面,书中的错误和不准确之处包括:
1. 在引言部分,函数定义的非嵌套性质被错误地翻译。原文“Function definitions may not be nested”被翻译成“函数定义可以不是嵌套的”,误导读者认为函数定义可以嵌套,而实际上C语言中函数定义是不允许嵌套的。正确的翻译应该是“函数定义不可以嵌套”。
2. 同样在引言中,一句吐槽性质的英文“You mean I have to call a function to compare two character strings?”被翻译得失去了原有的幽默感,正确的翻译应为“这意味着我必须调用一个函数来比较两个字符字符串吗?”。
3. 在“形式化”的翻译上,原文“formally”被译为“正式”,可能使读者感到困惑,更易懂的翻译应该是“更加正规”。
在第一章“导言”中,练习1-20的描述存在问题,原文的“next”被错误地理解为“下一个”,实际上应当译为“靠着,紧挨”。正确的表述应为“使空格充满到挨着制表符终止位的地方”。
第三章“控制流”中,关于“continue”语句的解释也有误。原文指出在循环结构复杂时,使用“continue”可以避免过度嵌套。翻译中的“测试条件颠倒过来”和“缩进另一层循环”可能导致混淆,实际上是指将条件判断翻转,并将循环体进一步嵌套。正确的理解是:“continue语句常用于循环体后面的代码复杂,反转测试条件并再嵌套一层循环会使程序结构过于深陷的情况。”
此外,豆瓣网友jtuki指出的第8页的错误虽未给出具体细节,但可以看出中文版可能存在其他遗漏或错误。
虽然《C程序设计语言》中文版的翻译质量不尽如人意,但原版的权威性和内容的深度仍使其成为学习C语言的重要资源。对于初学者,建议配合英文原版阅读,或寻找其他质量较高的中文教程。对于有一定英语基础的程序员,直接阅读英文版是更优的选择,以确保准确理解语言的细节和编程概念。同时,对于翻译的准确性,读者需要保持批判性思维,遇到疑惑时查阅原文或寻求其他可靠资源以验证。