Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!att!ulysses!andante!alice!dmr From: dmr@alice.UUCP Newsgroups: comp.lang.c Subject: Re: Updates to K&R 2 Message-ID: <9436@alice.UUCP> Date: 5 Jun 89 07:48:55 GMT Organization: AT&T Bell Laboratories, Murray Hill NJ Lines: 98 I was a bit surprised to see Chris Beierl's posting of the errata for K&R second edition. More accurately, I was surprised to hear that it was present in his copy of the book, since it was prepared for posting to this group. We thought we gave it to our editor at Prentice-Hall for his information; he didn't tell us that it was to be included as an errata list, or even let us know that this was possible. We would have worded it a bit differently. In any event, here is what we have now. All of these changes should be in the second printing. The main difference between this and what Beierl posted is the addition of the statement about initialization of automatic arrays on p. 86. [Incidentally, the range of tm_sec is really 0 through 61. It seems that two consecutive leap seconds are permitted.] Dennis Ritchie dmr@research.att.com att!research!dmr --------- Now that X3J11 has voted to send its draft to X3, and further substantive changes in the draft standard are unlikely, Brian and I are preparing fixes to put in any future printings of the second edition of "The C Programming Language." Fortunately, they are minor. For the benefit of previous and near-future purchasers, here are the changes that were made: Two or three sentences in the Preface and Introduction are updated to describe the state of the Standard. atof is in stdlib.h, not math.h: changes 71, 76, 82, 121. On page 86, error corrected: missing automatic array initializers are zero too. On page 168: changed 1 to 1.0 in frand() to avoid potential overflow. Minor typos are corrected on pages 87, 89, 164, 165, 180. The inconspicuous references to 'noalias' on pages 192 and 212 are removed. The following paragraph is added to the end of section A6.6 (p 199): A pointer may be converted to another pointer whose type is the same except for the addition or removal of qualifiers (A4.4, A8.2) of the object type to which the pointer refers. If qualifiers are added, the new pointer is equivalent to the old except for restrictions implied by the new qualifiers. If qualifiers are removed, operations on the underlying object remain subject to the qualifiers in its actual declaration. On p. 199, beginning of section A6.8, "Any pointer may be converted to type void *..." is changed to "Any pointer >to an object< may be converted to type void *...". On p. 204, A7.4.4, "The operand of the unary + operator must have arithmetic or pointer type..." should read "must have arithmetic type...". On p. 206, A7.9, about relational operators: "Pointers to objects of the same type may be compared..." is changed to "Pointers to object of the same type >(ignoring any qualifiers)< may be compared...". The indented material on p. 209, "According to the restrictions... relaxing it." is removed. [This is related to the paragraph added above. The wording of the draft of a year ago made it useless to take an (int *) pointer, cast it to (const int *), then cast it back to (int *).] On p. 219 middle, initialization of structures, add "Unnamed bit-field members are ignored, and are not initialized." Appendix B changes: p 242: add "fflush(NULL) flushes all output streams." to fflush description. p 243: change to "it must be called before reading, writing >or any other operation<" in setvbuf description. p 249: add "Comparison functions treat arguments as unsigned char arrays." to string.h description. p 255: change range of tm_sec to (0,61) for leap seconds. CLK_TCK was changed late (12/15/88) to CLOCKS_PER_SEC. p 257: drop U and L suffixes from constants. tm_sec range (00,61) here too. Appendix C change: p 261: Change "External declarations without any specifiers..." to "External >data< declarations without any specifiers...". The index has been reprinted to fix a couple of typos and account for motion within Appendix A; one page of the table of contents is changed.