home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / c / 13079 < prev    next >
Encoding:
Internet Message Format  |  1992-09-01  |  1.4 KB

  1. Path: sparky!uunet!wupost!uwm.edu!ogicse!das-news.harvard.edu!spdcc!dirtydog.ima.isc.com!karl
  2. From: karl@ima.isc.com (Karl Heuer)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: printf question
  5. Message-ID: <1992Sep01.214725.6334@ima.isc.com>
  6. Date: 1 Sep 92 21:47:25 GMT
  7. Article-I.D.: ima.1992Sep01.214725.6334
  8. References: <1226@pascal.einstein.eds.com> <RICHARD.92Aug30153124@CLYDE.ttt.kth.se> <3361@dozo.and.nl>
  9. Sender: usenet@ima.isc.com (news)
  10. Organization: Interactive Systems, Cambridge, MA 02138-5302
  11. Lines: 16
  12.  
  13. In article <kimcm.714943581@login.dkuug.dk> kimcm@login.dkuug.dk (Kim Chr. Madsen) writes:
  14. >Using this syntax on the original problem will save you some time because the
  15. >format is evaluated at compile time instead of run time.
  16.  
  17. On the other hand, when the printf interpreter encounters the format "%04x",
  18. it has to convert the string "4" into the integer value 4; whereas with "%0*x"
  19. it can just pull the value out of the argument list.  I seem to recall hearing
  20. that somebody actually found "%0*x" to be faster.  (A test on my system just
  21. now indicates that it may be 1/3 of a percent faster.)
  22.  
  23. Of course, this is not likely to be a bottleneck in any case.  I would use "*"
  24. for portability reasons (Classic C doesn't have string pasting), and because
  25. it avoids having to hardcode the string form of the magic constant.  (The C
  26. preprocessor has no way to evaluate-and-stringize a constant expression.)
  27.  
  28. Karl W. Z. Heuer (karl@ima.isc.com or uunet!ima!karl), The Walking Lint
  29.