⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 my_sprintf.lst

📁 智原mp3 SDK 开发包 与巨力 有mp3 wma ogg decoder
💻 LST
字号:
C51 COMPILER V7.50   MY_SPRINTF                                                            08/18/2008 12:40:46 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MY_SPRINTF
OBJECT MODULE PLACED IN ..\output\output_bin\output_mp3\my_sprintf.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\code\ap_mp3\src\my_sprintf.c LARGE OPTIMIZE(9,SIZE) BROWSE INCDIR(..\
                    -..\..\bsp\include;..\..\code\ap_mp3\src\include;..\..\code\global;..\..\code\include) DEFINE(CONFIG_ASIC,dynamic_load) D
                    -EBUG OBJECTEXTEND PRINT(..\output\output_bin\output_mp3\my_sprintf.lst) OBJECT(..\output\output_bin\output_mp3\my_sprint
                    -f.obj)

line level    source

   1          /*
   2           *      my_sprintf.c
   3           *
   4           *      Simple Sprintf Function
   5           *
   6           *              Copyright (c) FARADAY, All Right Reserved 2006
   7           *
   8           *      Created by:     K.J. Lin <kjlin@faraday-tech.com>
   9           *
  10           */
  11          #include <stdarg.h>
  12          #include <string.h>
  13          
  14          static char order;
  15          
  16          
  17          
  18          char *my_itoa(char *a, int val)
  19          {
  20   1              char buf[16];
  21   1              char *ptr;
  22   1              char i = 0;
  23   1      
  24   1              memset(buf, '0', sizeof(buf));
  25   1      
  26   1              ptr = buf;
  27   1      
  28   1              /* zero then return */
  29   1              while(val) {
  30   2                      *ptr++ = (val % 10) + '0';
  31   2                      val = val / 10;
  32   2                      i++;
  33   2              }
  34   1              //*ptr = 0;
  35   1      
  36   1              if(i < order)
  37   1                      i = order;
  38   1      
  39   1              if(i == 0)
  40   1                      i = 1;
  41   1      
  42   1              while(i--)
  43   1                      *a++ = buf[i];
  44   1              
  45   1              order = 0;
  46   1      
  47   1              return a;
  48   1      }
  49          
  50          void my_sprintf(char *buf, const char *fmt, ...)
  51          {
  52   1              const char *s;
C51 COMPILER V7.50   MY_SPRINTF                                                            08/18/2008 12:40:46 PAGE 2   

  53   1              va_list ap;
  54   1              
  55   1              order = 0;
  56   1              
  57   1              va_start(ap, fmt);
  58   1              
  59   1              while(*fmt) {
  60   2                      if (*fmt != '%') {
  61   3                              *buf++ = *fmt++;
  62   3                              continue;
  63   3                      }
  64   2                      switch (*++fmt) {
  65   3                              //case 'c':
  66   3                              //      *buf++ = va_arg(ap, char);
  67   3                              //      break;
  68   3                              case 's':
  69   3                                      s = va_arg(ap, const char *);
  70   3                                      while(*s)
  71   3                                              *buf++ = *s++;
  72   3                                      break;
  73   3                              case '0':
  74   3                                      if(*(fmt + 2) == 'd') {
  75   4                                              order = *(fmt + 1) - '0';
  76   4                                              fmt += 2;
  77   4                                      }
  78   3                                      else {
  79   4                                              *buf++ = *fmt;
  80   4                                              break;
  81   4                                      }
  82   3                              case 'd':
  83   3                                      buf = my_itoa(buf, va_arg(ap, int));
  84   3                                      break;
  85   3                              default:
  86   3                                      *buf++ = *fmt;
  87   3                                      break;
  88   3                      }
  89   2                      fmt++;
  90   2              }
  91   1      
  92   1              *buf = '\0';
  93   1              
  94   1              va_end(ap);
  95   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    423    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      1      77
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -