home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #26 / NN_1992_26.iso / spool / comp / lang / c / 16060 < prev    next >
Encoding:
Text File  |  1992-11-07  |  1.4 KB  |  37 lines

  1. Newsgroups: comp.lang.c
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!sdd.hp.com!cs.utexas.edu!zaphod.mps.ohio-state.edu!uunet.ca!wildcan!sq!msb
  3. From: msb@sq.sq.com (Mark Brader)
  4. Subject: Re: Help.  (Unix C)
  5. Message-ID: <1992Nov6.055934.18694@sq.sq.com>
  6. Supersedes: <1992Nov6.035051.16838@sq.sq.com>
  7. Organization: SoftQuad Inc., Toronto, Canada
  8. References: <1992Nov5.154636.10510@pica.army.mil> <1992Nov5.162818.10918@pica.army.mil>
  9. Date: Fri, 6 Nov 92 05:59:34 GMT
  10. Lines: 25
  11.  
  12. [Corrected version; apologies if you already read the now-cancelled original.]
  13.  
  14. > > you could do simply
  15. > > 
  16. > >      return (ptr->item1 - ptr->item2);
  17.  
  18. > This works for intgers, not floats (sorry)
  19.  
  20. No, this works only for types that are (a) *narrower* than int, and
  21. (b) signed.  Therefore it should not be used for this application!
  22.  
  23. If item1 and item2 are 16-bit ints, try it on the case where their
  24. respective values are 20000 and -20000.  If they are 32-bit ints,
  25. append 00000 to each of these, and then try it.  If you are lucky,
  26. you are on an implementation that detects arithmetic overflow and
  27. your program terminates.  More likely the comparison just returns
  28. the wrong result.
  29.  
  30. Verbose as it may seem to some, the approach of doing two separate
  31. comparisons really is the only safe one.
  32. -- 
  33. Mark Brader, SoftQuad Inc.,            "Verbose better."
  34. Toronto, utzoo!sq!msb, msb@sq.com            -- David M. Sherman
  35.  
  36. This article is in the public domain.
  37.