亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? _printf.c

?? iccavr編譯器下的源代碼
?? C
字號:
/* For AVR, do not compile this file standalone in libsrc.common\stdio
 */
#if !defined(_AVR) || defined(AVR_DOIT)

#include <assert.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#include "_stdio.h"

#if defined(MINIMAL_PRINTF) && !defined(INTONLY_PRINTF)
#define INTONLY_PRINTF
#endif

#if defined(FLOAT_PRINTF) && defined(_AVR) && !defined(ATMEGA)
/* this wouldn't fit on a small target otherwise */
#define INTONLY_PRINTF
#endif

/* we need to keep track of how many characters are written out, as the return
 * value to this function
 */
#define PUT1CHAR(c) (*_put)(c), ret++

#if !defined(_AVR)
#define ATOI    atoi
#define _PRINT  _print
#define XCONST  const
#endif

/* make this static to lessen the load on the local stack
 */
static char buf[25];

int
_PRINT(void (*_put)(char), XCONST char *fmt, va_list va)
{
  char *bp;
  char *s;
  char carray[2];
  int i;
  int ret = 0;
  int flags;
  char signch;
  int done;
#if defined(_AVR)
  const char *cs;
#endif

#if !defined(MINIMAL_PRINTF)
  int width;
  int prec;
#endif
#if !defined(INTONLY_PRINTF)
  long l;
#endif

  /* process each charcater in format string */
  for ( ; *fmt; fmt++)
    {
      if (*fmt != '%')
          {
          PUT1CHAR(*fmt);
          continue;
          }

      /* got a % code, parse and perform action
       */
#if !defined(MINIMAL_PRINTF)
      width = 0;
      prec = -1;
#endif
      flags = 0;
      bp = buf;
      signch = ' ';
      ++fmt;

#if !defined(MINIMAL_PRINTF)
      /* check for the presence of flag characters: */
    for (done = 0; ; fmt++)
        {
        switch (fmt[0])
            {
        case '#':
            flags |= F_ALTFORM;
            break;
        case '-':
            flags |= F_LEFTALIGN;
            break;
        case '+':
            flags |= F_ADDSIGN;
            signch = '+';
            break;
        case ' ':
            flags |= F_ADDSIGN;
            signch = ' ';
            break;
        case '0':
            flags |= F_ZEROPADD;
            break;
        default:
            done = 1;
            break;
            }
        if (done)   /* break here so fmt++ would not happen */
            break;
        }

      /* read the 'width' and 'precision' fields: */
      if (isdigit (fmt[0]))
        {
          width = ATOI ((char *) fmt);
          while (isdigit (*fmt))
              fmt++;
        }
      else if (fmt[0] == '*')
        {
          width = va_arg(va, int);
          fmt++;
        }

      if (fmt[0] == '.')
        {
          ++fmt;
          if (isdigit(fmt[0]))
            {
            prec = ATOI ((char *) fmt);
            while (isdigit (*fmt))
                fmt++;
            }
          else if (fmt[0] == '*')
            {
            prec = va_arg(va, int);
            fmt++;
            }
        }
      if (fmt[0] == 'l')
        {
          ++fmt;
          flags |= F_LONG;
        }
#endif
      /* look for the base conversion type: */
      switch (*fmt)
        {
        default:
          PUT1CHAR(*fmt);
          break;
        case 'd':
#ifndef INTONLY_PRINTF
          if (flags & F_LONG)
            {
              l = va_arg (va, long);
              if (l < 0)
                {
                  flags |= F_ADDSIGN;
                  signch = '-';
                  l = -l;
                }
              ltoa (bp, l, 10);
            }
          else
#endif
            {
              i = va_arg (va, int);
              if (i < 0)
                {
                  flags |= F_ADDSIGN;
                  signch = '-';
                  i = -i;
                }
              itoa (bp, i, 10);
            }
          goto print_digits;
        case 'u':
        case 'o':
        case 'x':
        case 'X':
#ifndef INTONLY_PRINTF
          if (flags & F_LONG)
              l = va_arg (va, unsigned long);
          else
#endif
              i = va_arg (va, unsigned int);
          if (*fmt == 'u')
            {
#ifndef INTONLY_PRINTF
              if (flags & F_LONG)
                ltoa (bp, l, 10);
              else
#endif
                itoa (bp, i, 10);
            }
          else if (*fmt == 'o')
            {
#if !defined(MINIMAL_PRINTF)
              if (flags & F_ALTFORM)
                  *bp++ = '0';
#endif
#ifndef INTONLY_PRINTF
              if (flags & F_LONG)
                  ltoa (bp, l, 8);
              else
#endif
                  itoa (bp, i, 8);
            }
          else
            {
#if !defined(MINIMAL_PRINTF)
              if (flags & F_ALTFORM)
                {
                  *bp++ = '0';
                  *bp++ = fmt[0];
                }
#endif
#if !defined(INTONLY_PRINTF)
              if (flags & F_LONG)
                  ltoa (bp, l, 16);
              else
#endif
                  itoa (bp, i, 16);
            if (fmt[0] == 'X')
                for (s = buf; *s; s++)
                    *s = toupper(*s);
            }
        print_digits:
          s = buf;
#if !defined(MINIMAL_PRINTF)
          if (prec == -1)
            prec = 0;
          if (prec)
            {
            i = strlen(buf);
            if (prec < i)
              prec = i;
            }
#endif
          goto print_string;
        case 'c':
          carray[0] = va_arg (va, int);
#if !defined(MINIMAL_PRINTF)
          if (width > 1)
            {
            prec = width;
            carray[1] = 0;
            s = carray;
            goto print_string;
            }
          else
#endif
            PUT1CHAR(carray[0]);
          break;

#if defined(_AVR)
        case 'S':
          cs = va_arg(va, const char *);

        #define SPTR    cs
        #define STRLEN  cstrlen
        #include "_printf_string.c"
        #undef SPTR
        #undef STRLEN
          break;
#endif
        
        case 's':
          s = va_arg (va, char *);
          if (!s)
              s = "(null ptr passed)";
        print_string:
        
        #define SPTR    s
        #define STRLEN  strlen
        #include "_printf_string.c"
        #undef SPTR
        #undef STRLEN
        
          break;

#ifdef FLOAT_PRINTF
        {
      #include "formatfp1.h"
        float f;
        int fpcode;

        case 'e': fpcode = FMT_SCIENTIFIC; goto print_float;
        case 'E': fpcode = FMT_SCIENTIFIC_BIG_E; goto print_float;
        case 'f': fpcode = FMT_NORMAL; goto print_float;
        case 'g': fpcode = FMT_OPTIMUM; goto print_float;
        case 'G': fpcode = FMT_OPTIMUM_BIG_E; goto print_float;

      print_float:
          f = va_arg(va, float);
          if (prec == -1)
            prec = 6;
          assert(sizeof (buf) >= F_FP_BFR_SIZE);
          s = _FormatFP_1(buf, fpcode, f, flags, width, prec);
          while (*s)
              PUT1CHAR(*s++);
        }
#else
        case 'f':
        case 'e':
        case 'E':
          s = (char *) "<integer only print, use -lfp?? to relink>";
          goto print_string;
#endif

        }
    }
  return ret;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美在线视频日韩| 国产一区二区电影| 欧美丝袜丝nylons| 一区二区三区 在线观看视频| 日韩精品在线一区二区| 久久精品999| 国产亲近乱来精品视频| aaa亚洲精品一二三区| 亚洲精品国产成人久久av盗摄| 色8久久精品久久久久久蜜| 亚洲综合免费观看高清完整版在线 | 色综合久久久久久久久久久| 中文字幕亚洲综合久久菠萝蜜| 91网站黄www| 日本亚洲最大的色成网站www| www久久久久| 91国内精品野花午夜精品| 蜜桃久久久久久久| 国产精品久久毛片a| 欧美系列在线观看| 国产成人免费网站| 亚洲成在线观看| 久久综合视频网| 色婷婷亚洲综合| 美女视频黄 久久| 国产精品毛片高清在线完整版| 在线观看日韩av先锋影音电影院| 久久97超碰国产精品超碰| 中国av一区二区三区| 欧美日韩国产高清一区二区| 国内外成人在线| 亚洲小说春色综合另类电影| 久久精品亚洲国产奇米99| 欧美三区免费完整视频在线观看| 激情综合网激情| 亚洲成人黄色影院| 国产欧美日韩另类一区| 欧美精品1区2区3区| 成人黄色电影在线| 久久99精品国产| 午夜精品久久久| 亚洲乱码国产乱码精品精的特点| 日韩欧美高清在线| 欧美精品久久99久久在免费线| 成人免费观看视频| 精品一区二区日韩| 午夜伦欧美伦电影理论片| 国产精品国模大尺度视频| 欧美电影免费观看高清完整版在| 色婷婷综合视频在线观看| 国产一区在线不卡| 久久99久久精品| 午夜精品123| 夜夜爽夜夜爽精品视频| 国产精品久久久久影院色老大 | 日韩午夜电影av| 在线精品视频小说1| 波多野结衣在线一区| 国产美女一区二区三区| 蜜桃视频免费观看一区| 色网综合在线观看| 国产高清一区日本| 精品一区二区三区不卡| 捆绑调教一区二区三区| 日韩国产欧美在线播放| 亚洲第四色夜色| 亚洲国产精品久久久久婷婷884 | 国产a区久久久| 国产精品18久久久久久久久| 青青草一区二区三区| 日日摸夜夜添夜夜添国产精品| 亚洲一区二区3| 亚洲国产精品久久艾草纯爱| 一区二区三区蜜桃网| 亚洲与欧洲av电影| 亚洲一区二区三区四区中文字幕| 亚洲精品欧美激情| 亚洲综合一区二区| 亚洲制服丝袜av| 亚洲国产aⅴ成人精品无吗| 亚洲综合精品久久| 亚洲高清视频在线| 蜜臀av性久久久久蜜臀aⅴ| 免费视频最近日韩| 久久国内精品视频| 国产剧情一区二区三区| 国产91精品在线观看| av亚洲产国偷v产偷v自拍| 成人动漫精品一区二区| 色偷偷成人一区二区三区91| 欧美性色aⅴ视频一区日韩精品| 欧美日韩一区二区三区视频| 欧美二区在线观看| 欧美r级在线观看| 国产视频视频一区| 亚洲乱码国产乱码精品精的特点 | 人人狠狠综合久久亚洲| 麻豆91免费观看| 国产麻豆精品久久一二三| 成人国产视频在线观看| 色系网站成人免费| 日韩精品一区二区三区中文精品| 国产日韩影视精品| 亚洲黄网站在线观看| 麻豆精品在线播放| 成人av电影免费在线播放| 欧美日韩另类国产亚洲欧美一级| 欧美一区日本一区韩国一区| 国产日韩精品一区| 亚洲国产婷婷综合在线精品| 国内成人精品2018免费看| av高清不卡在线| 欧美一区二区三区白人| 国产精品久久夜| 日韩和欧美一区二区三区| 国产精品一区二区久久不卡| 欧美在线三级电影| 国产三级一区二区| 午夜精品免费在线| 成人短视频下载| 日韩一区二区三区电影在线观看| 国产综合久久久久久鬼色| 91麻豆国产精品久久| 日韩三级中文字幕| 亚洲欧美乱综合| 激情图片小说一区| 在线区一区二视频| 国产精品免费人成网站| 免费美女久久99| 91福利在线播放| 欧美激情一区二区在线| 日韩精品高清不卡| 一本久久精品一区二区| 久久久久一区二区三区四区| 亚洲成人一区二区| 91在线一区二区三区| 久久亚洲精精品中文字幕早川悠里| 洋洋成人永久网站入口| 国产91在线|亚洲| 精品国产免费人成在线观看| 亚洲成人av一区二区三区| bt欧美亚洲午夜电影天堂| 精品国免费一区二区三区| 五月婷婷综合网| 色呦呦日韩精品| 成人免费在线视频| 高清成人免费视频| 国产亚洲精品超碰| 黄网站免费久久| 精品国内二区三区| 久久不见久久见中文字幕免费| 欧美精品1区2区| 亚洲成人久久影院| 欧美性感一区二区三区| 一区二区视频免费在线观看| eeuss鲁片一区二区三区在线观看| 久久久青草青青国产亚洲免观| 麻豆91精品视频| 91精品婷婷国产综合久久竹菊| 亚洲第一综合色| 欧美日韩国产美| 秋霞电影网一区二区| 制服丝袜中文字幕一区| 无码av免费一区二区三区试看| 在线一区二区三区做爰视频网站| 自拍偷拍国产精品| 91视频免费播放| 一区二区三区国产| 欧美性感一区二区三区| 天堂成人免费av电影一区| 欧美日韩国产一级二级| 天天免费综合色| 日韩免费性生活视频播放| 美国一区二区三区在线播放| 精品国产自在久精品国产| 国产一区免费电影| 中文字幕欧美国产| 91麻豆swag| 三级欧美在线一区| 日韩一区二区三区免费观看| 久久se精品一区二区| 国产人久久人人人人爽| 成人av在线一区二区| 夜色激情一区二区| 日韩一区二区高清| 国产成人超碰人人澡人人澡| 中文字幕一区二区在线观看| 日本韩国一区二区| 天堂一区二区在线| 久久亚区不卡日本| 9i看片成人免费高清| 亚洲成人动漫在线观看| 欧美成人国产一区二区| 成人网男人的天堂| 亚洲一区免费观看| 精品三级在线看| 92精品国产成人观看免费| 亚洲高清视频中文字幕| 久久精品欧美日韩| 亚洲欧洲精品一区二区三区不卡|