关于 C 编程的 K&R 书的勘误表

Errata of K&R book on C programming

我正在阅读关于 C 语言的 K&R 书籍{2nd Addition}。 在第 107 页上,我发现 "addpoint" 函数的 "return type" 中缺少结构类型 "Point"。 出自本书

/* addpoints: add two points */

 struct addpoint(struct point p1, struct point p2)
 {
 p1.x += p2.x;
 p1.y += p2.y;
 return p1;
 }

期待

    struct point addpoint(struct point p1, struct point p2)
{
.
.
.

当我说 return 类型缺少 "point" 时,我的理解是否正确?我需要在本书中寻找哪些其他勘误表? 我找到了这个 link http://cm.bell-labs.com/cm/cs/cbook/2ediffs.html ,这是完整的清单吗?如果有人能给我指出更多这样的例子,那就太好了。

提前致谢。

它没有丢失,因为 p1 在参数中被定义为结构点,而且我已经查找了 K&R 并且添加点被定义为 struct point addpoint(struct point p1,struct point p2);

OP 你说得对, "point" 不见了。我 猜测 早期的编译器可能足够宽容,以至于这种事情从裂缝中溜走了。

我认为您不能保证任何勘误表都是完整的,但是这本书已经出版了这么久,我想几乎所有的主要问题都会被发现。话虽如此,我一直没有注意到你刚才指出的问题。

如果您这么担心,我建议您对所有事情都保持怀疑,并运行使用最新的 C89 编译器以尽可能严格的一致性级别编译和运行所有程序。