Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
08/22/05 12:51
Read: times


 
#99813 - sprintf() is fairly large
Responding to: ???'s previous message
Kunaal Lagwankar said:
Also, wouldnt use of sprintf be wiser rather than implementing all the logic ?

Unless I had a bunch more formatting to do elsewhere, I would try to avoid sprintf(), which is quite costly code-wise.

Admittedly, the tostr()/rpt() pair are a bit inefficient and could be combined into something smaller -- a variation of:
/****************************************************************************
 *
 *    NAME: UsToStr
 * PURPOSE: Convert unsigned short to decimal string.
 *
 * SYNOPSIS:   void UsToStr(char *s, unsigned short bin, unsigned char n);
 *
 * DESCRIPTION:
 *
 *     The function stores a NUL-terminated string, in "n" + 1 (plus 1 for
 *     the NUL string terminator) successive elements of the array whose
 *     first element has the address "s", by converting "bin" to "n" decimal
 *     characters.
 *
 ****************************************************************************/

void UsToStr(char *s, unsigned short bin, unsigned char n)
{
    s += n;
    *s = '';

    while (n--)
    {
        *--s = (bin % 10) + '0';
        bin /= 10;
    }
}


List of 18 messages in thread
TopicAuthorDate
Keil C51-optimization & Pointers            01/01/70 00:00      
   Bad array index            01/01/70 00:00      
      oops!!            01/01/70 00:00      
         buff[] is auto, not static            01/01/70 00:00      
            Back to basics            01/01/70 00:00      
               Don't shoot the pianist!            01/01/70 00:00      
   Hex file size            01/01/70 00:00      
      Optimization pointers            01/01/70 00:00      
         sprintf() is fairly large            01/01/70 00:00      
         So start a new thread, then!            01/01/70 00:00      
         pls...help            01/01/70 00:00      
            I disagree            01/01/70 00:00      
      My dear Watson !            01/01/70 00:00      
         One size fits all            01/01/70 00:00      
   bin = hex / 2.8            01/01/70 00:00      
      hexmap            01/01/70 00:00      
      A bit of a sweeping generalisation!!            01/01/70 00:00      
   Keil C51-optimization & Pointers            01/01/70 00:00      

Back to Subject List