home *** CD-ROM | disk | FTP | other *** search
/ ftp.cse.unsw.edu.au / 2014.06.ftp.cse.unsw.edu.au.tar / ftp.cse.unsw.edu.au / pub / doc / papers / misc / cs.toronto.edu:programming / KR2.errata < prev    next >
Encoding:
Text File  |  1992-10-18  |  4.6 KB  |  139 lines

  1. (Message inbox:1084)
  2. Date:    Mon, 4 Feb 1991 15:34:19 -0500
  3. From:    dmr@research.att.com
  4. To:      moraes@cs.toronto.edu
  5. Subject: Re: Wanted: K&R2 errata 
  6. Return-Path: neat.cs.toronto.edu!research.att.com!dmr
  7. Received: from neat.cs.toronto.edu ([128.100.3.2]) by smoke.cs.toronto.edu with SMTP id <272>; Mon, 4 Feb 1991 15:34:44 -0500
  8. Received: from research.att.com ([192.20.225.2]) by neat.cs.toronto.edu with SMTP id <7142>; Mon, 4 Feb 1991 15:34:33 -0500
  9. Message-Id: <91Feb4.153433est.7142@neat.cs.toronto.edu>
  10.  
  11. Yes; it was posted Jan 31.  Here's a copy.
  12.  
  13.     Dennis
  14. ---
  15. It's time to post the latest version of the errata list for
  16. the second edition of K&R.  Further corrections are welcome.
  17.  
  18.     Dennis Ritchie
  19.     att!research!dmr
  20.     dmr@research.att.com
  21. -----
  22.  
  23.      Changes to The C Programming Language, 2nd Edition
  24.  
  25.      As the C standard wended its way through the approval
  26. process and became final, Brian and I prepared fixes to put
  27. in new printings of the second edition of  ``The C
  28. Programming Language.'' These printings are identified by a
  29. large red ``ANSI C'' in the upper right quadrant.
  30. Fortunately, the changes are minor; some repair our bugs, a
  31. few account for last-minute changes in the draft standard.
  32. For the benefit of previous and near-future purchasers, here
  33. are the changes that were made:
  34.  
  35. Two or three sentences in the Preface and Introduction are
  36. updated to describe the state of the Standard.
  37.  
  38. atof is in  <stdlib.h>, not  <math.h>; this changes 71, 76,
  39. 82, 121.
  40.  
  41. On page 86, error corrected:  elided initializers are 0
  42. for automatic as well as static variables.
  43.  
  44. On page 168: changed 1 to 1.0 to avoid potential overflow.
  45.  
  46. Minor typos are corrected on pages 87, 89, 164, 165, 168,
  47. 180.
  48.  
  49. The inconspicuous references to  noalias on pages 192 and
  50. 211 are removed.
  51.  
  52. The following paragraph is added to the end of section A6.6
  53. (p 199):
  54.  
  55.      A pointer may be converted to another pointer whose
  56.      type is the same except for the addition or removal of
  57.      qualifiers (A4.4, A8.2) of the object type to which the
  58.      pointer refers.  If qualifiers are added, the new
  59.      pointer is equivalent to the old except for
  60.      restrictions implied by the new qualifiers.  If
  61.      qualifiers are removed, operations on the underlying
  62.      object remain subject to the qualifiers in its actual
  63.      declaration.
  64.  
  65.  
  66. On p. 199, beginning of section A6.8, ``Any pointer may be
  67. converted to type  void  *...'' is changed to ``Any pointer
  68. >to an object< may be converted to type  void  *...''.
  69.  
  70. On p. 204, A7.4.4, ``The operand of the unary + operator
  71. must have arithmetic or pointer type...'' should read ``must
  72. have arithmetic type...''.
  73.  
  74. On p. 206, A7.9, about relational operators:  ``Pointers to
  75. objects of the same type may be compared...'' is changed to
  76. ``Pointers to object of the same type >(ignoring any
  77. qualifiers)< may be compared...''.
  78.  
  79. The indented material on p. 209, ``According to the
  80. restrictions...  relaxing it.'' is removed.   [This is
  81. related to the paragraph added above.  The wording of the
  82. penultimate draft made it useless to take an (int *)
  83. pointer, cast it to (const  int  *), then cast it back to
  84. (int *).]
  85.  
  86. On p. 219 middle, initialization of structures, add
  87. ``Unnamed bit-field members are ignored, and are not
  88. initialized.''
  89.  
  90.  
  91. Appendix B changes:
  92.  
  93. p 242:  Add ``fflush(NULL) flushes all output streams.'' to
  94.  fflush description.
  95.  
  96. p 243:  Change to ``it must be called before reading,
  97. writing >or any other operation<'' in  setvbuf description.
  98.  
  99. p 249:  Add ``Comparison functions treat arguments as
  100. unsigned  char arrays.''  to  <string.h> description.
  101.  
  102. p 255:  Change range of  tm_sec to (0,61) for leap seconds.
  103.  
  104. p 255:  Change  CLK_TCK to  CLOCKS_PER_SEC.
  105.  
  106. p 257:  Drop  U and  L suffixes from  <limits.h> constants.
  107.  tm_sec range is (00,61) here too.
  108.  
  109. Appendix C change:
  110.  
  111. p 261:  Change ``External declarations without any
  112. specifiers...'' to ``External >data< declarations without
  113. any specifiers...''.
  114.  
  115. The index has been reprinted to fix a couple of typos and
  116. account for motion within Appendix A;  one page of the table
  117. of contents is changed.
  118.  
  119.  
  120. October, 1989: Minor changes on page 131 to add & to last
  121. example, on page 208 to change ``equal'' to ``unequal'' in
  122. the description of logical OR, and on page 254 to clarify
  123. that only volatile automatics are saved with longjmp.
  124.  
  125. Not yet fixed in any printing:
  126.  
  127. page 53: Note under the table should say & as well as  + - *
  128. has higher precedence as a unary operator.
  129.  
  130. page 111: indent is too large, and a bit of program text is
  131. cut off.
  132.  
  133. page 231  extra right paren in nested call to cat macro.
  134.  
  135. page 246: first argument of sscanf should have type
  136. const char *.
  137.  
  138. page 249: in description of strncpy, t => ct.
  139.