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

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

?? printf.c

?? yampp3 mp3 code
?? C
字號:
/* ***********************************************************************
**
**  Copyright (C) 2002  Jesper Hansen <jesperh@telia.com> 
**
**
**  Yampp-3/USB - output formating routines
**
**  File printf.c
**
*************************************************************************
**
**   This file is part of the yampp system.
**
**  This program is free software; you can redistribute it and/or
**  modify it under the terms of the GNU General Public License
**  as published by the Free Software Foundation; either version 2
**  of the License, or (at your option) any later version.
**
**  This program is distributed in the hope that it will be useful,
**  but WITHOUT ANY WARRANTY; without even the implied warranty of
**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
**  GNU General Public License for more details.
**
**  You should have received a copy of the GNU General Public License
**  along with this program; if not, write to the Free Software Foundation, 
**  Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
**
*************************************************************************
**
**  Revision History
**
**  when         what  who	why
**
**  2002-09-01   1.0   MIS      initial public release
**
*********************************************************************** */

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


#include <progmem.h>

#include "types.h"

#include "yampp3lib.h"


extern void putchar(u08);


void _p_puts(char const *p)
{
	u08 b;
	while (p && (b = PRG_RDB(p++)))
	{
		if(b == '\n')
			putchar('\r');
		putchar(b);
	}
}

void _p_fputs(PCFUNC func, char const *p)
{
	u08 b;
	while (p && (b = PRG_RDB(p++)))
	{
		if(b == '\n')
			func('\r');
		func(b);
	}
}

void both_progputs(char const *p)
{
	lcd_progputs((u08*)p);
	_p_puts((u08*)p);
}

void both_putchar(u08 c)
{
	putchar(c);
	lcd_putchar(c);
}

void both_puts(char *p)
{
	while(*p)
		both_putchar(*p++);
}

void uart_EOL(void)
{
	_p_puts(PSTR("\n"));
}

int _p_vprintf(char const *format,va_list ap)
{
  u08 	scratch[16];
  u08 	format_flag;
  u32 	u_val=0;
  u08	base;
  u08	*ptr;
  u08	width;
  u08 	fill;
  u08 	long_modifier;
  u08   usigned = 0;

  while(1)
  {
  
	long_modifier = 0;
  	width = 0;
  	fill = ' ';
    while ((format_flag = PRG_RDB(format++)) != '%')
	{  
      if (!format_flag)
	  {
		  va_end (ap); 
		  return (0);
	  }
      //*buf = format_flag; buf++; *buf=0;
	  if(format_flag == '\n')
 		putchar('\r');
      putchar(format_flag);
    }


	// check for zero pad
	format_flag = PRG_RDB(format) - '0'; 
	if (format_flag == 0)	// zero pad
	{
		fill = '0';
		format++;
	}
	
	// check for width spec
	format_flag = PRG_RDB(format) - '0'; 
	if (format_flag > 0 && format_flag <= 9)	// width set
	{
		width = format_flag;
		format++;	
	}
	
	// check modifier
	format_flag = PRG_RDB(format); 
	if (format_flag == 'l')		// long modifier
	{
		long_modifier = 1;
		format++;	
	}


	
    switch (format_flag = PRG_RDB(format++))
	{
		case 'c':
		  format_flag = va_arg(ap,int);

		  //fall through
		  
		default:
	      putchar(format_flag);
		  //*buf = format_flag; 
		  //buf++;
		  //*buf=0;
		  continue;
		  
		case 'S':
		case 's':
		  ptr = va_arg(ap,char *);
		  while (*ptr)
			putchar(/**buf++ = */ *ptr++);
		  continue;
		  
		case 'p':
		  ptr = va_arg(ap,char *);
		  while (PRG_RDB(ptr))
			putchar(/**buf++ = */ PRG_RDB(ptr++));
		  continue;


		case 'o':
		  base = 8;
		  putchar('0');
		  //*buf = '0';
		  //buf++; 
		  //*buf=0;
		  goto CONVERSION_LOOP;
/*		  
		case 'i':
		  if (((int)u_val) < 0)
		  {
			u_val = - u_val;
			*buf = '-';
			buf++;
			*buf=0;
		  }
*/		  
		
		case 'u':
		  usigned = 1;	
		case 'd':
		  base = 10;
		  goto CONVERSION_LOOP;
		  
		case 'x':
		  usigned = 1;
		  base = 16;

CONVERSION_LOOP:
		  if (long_modifier)
		    if (usigned)
		  		u_val = va_arg(ap,unsigned long);
		  	else	
		  		u_val = va_arg(ap,long);
		  else
		  	if (usigned)
		  		u_val = va_arg(ap,unsigned int);
		  	else
		  		u_val = va_arg(ap,int);
		  ptr = scratch + 16;
		  *--ptr = 0;
		  do
		  {
			char ch = u_val % base + '0';
			if (ch > '9')
			  ch += 'a' - '9' - 1;
			*--ptr = ch;
			u_val /= base;

			if (width)
				if(--width == 0) break;
		
	      } while (u_val);

		  while (width--)
		  	*--ptr = fill; 		      
	      
		  while (*ptr) 
			putchar( /**buf++ = */ *ptr++);
    }
  }

}

int _p_fprintf(PCFUNC func , char const *format, ...)
{
  	int r;
	va_list ap;
  	PCFUNC oldfunc = setputchar(func);
  	va_start (ap, format);
	r = _p_vprintf(format,ap);
	setputchar(oldfunc);
	return r;
}

int _p_printf(char const *format, ...)
{
  	va_list ap;
  	va_start (ap, format);
  	return _p_vprintf(format,ap);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区三| 精品一区二区在线观看| 日韩免费电影网站| 成人国产精品免费网站| 天天爽夜夜爽夜夜爽精品视频| 精品国产污污免费网站入口| 色婷婷亚洲精品| 国产成人精品综合在线观看 | 日韩精品一区二区三区中文精品| 97精品久久久午夜一区二区三区| 国产在线麻豆精品观看| 亚洲午夜影视影院在线观看| 国产精品午夜春色av| 精品免费视频一区二区| 欧美色老头old∨ideo| 波波电影院一区二区三区| 国内成人精品2018免费看| 图片区小说区国产精品视频| 亚洲激情成人在线| 日韩毛片高清在线播放| 日本一区二区三级电影在线观看| 精品国产一区二区国模嫣然| 欧美日韩国产高清一区| 欧洲人成人精品| 色先锋aa成人| 日本韩国欧美在线| 日本国产一区二区| 在线观看日韩电影| 色天使色偷偷av一区二区| 91丨porny丨首页| 99热这里都是精品| 91免费国产在线观看| www.亚洲人| 99精品欧美一区二区蜜桃免费 | 中文字幕日本不卡| 国产精品久久久久9999吃药| 日本一区二区综合亚洲| 欧美国产综合一区二区| 欧美国产综合色视频| 中文av字幕一区| 欧美激情在线一区二区三区| 国产目拍亚洲精品99久久精品| 国产三区在线成人av| 日本一区二区三区电影| 国产精品第一页第二页第三页| 国产精品动漫网站| 亚洲人妖av一区二区| 亚洲久本草在线中文字幕| 一区二区欧美精品| 亚洲h动漫在线| 美腿丝袜亚洲色图| 国产一区二区主播在线| 国产ts人妖一区二区| 92国产精品观看| 欧美视频在线不卡| 欧美一区三区二区| 久久一日本道色综合| 欧美极品另类videosde| 亚洲精品久久久久久国产精华液| 亚洲成av人片在www色猫咪| 日本不卡视频在线观看| 国产精品一区二区在线观看网站| 国产98色在线|日韩| 91丝袜美女网| 日韩亚洲欧美在线观看| 国产三级精品三级| 一二三区精品福利视频| 男男视频亚洲欧美| 成人在线一区二区三区| 欧美图片一区二区三区| 久久综合色一综合色88| 亚洲视频一区二区在线| 三级久久三级久久久| 国产精品亚洲成人| 欧美视频自拍偷拍| 久久九九国产精品| 午夜精品爽啪视频| 国产成人亚洲精品青草天美| 欧美视频在线一区| 国产亚洲短视频| 性做久久久久久| 国产高清视频一区| 欧美精品在线观看播放| 欧美激情综合五月色丁香| 亚洲一区二区三区激情| 国产高清无密码一区二区三区| 欧美在线色视频| 国产欧美一区二区精品仙草咪 | 粉嫩aⅴ一区二区三区四区| 在线观看亚洲成人| 久久麻豆一区二区| 婷婷综合五月天| 91视频一区二区三区| 亚洲精品一区二区三区99| 亚洲va欧美va人人爽| av欧美精品.com| 久久久久久久久一| 午夜精品免费在线| 91免费国产在线观看| 久久精品人人做| 免费欧美高清视频| 日本高清不卡aⅴ免费网站| 欧美精品一区二区三区四区| 亚洲国产精品久久久久婷婷884| 成人国产精品视频| 国产亚洲欧美激情| 精品在线观看视频| 欧美一区二区三区免费视频| 亚洲制服丝袜一区| 99久精品国产| 国产精品白丝在线| 国产一区二区三区免费| 日韩视频永久免费| 奇米色一区二区三区四区| 欧美在线免费观看亚洲| 日韩毛片精品高清免费| 成人网在线播放| 中文av一区特黄| 国产成都精品91一区二区三| 久久久蜜桃精品| 国产一区二区美女| 精品乱码亚洲一区二区不卡| 日本午夜精品视频在线观看| 欧美群妇大交群的观看方式| 亚洲成人777| 欧美日韩五月天| 午夜在线成人av| 在线成人午夜影院| 日韩国产精品久久| 欧美一区二区三区思思人| 日韩精品亚洲一区二区三区免费| 欧美日本一道本在线视频| 婷婷中文字幕综合| 日韩一区二区三区电影在线观看| 日日摸夜夜添夜夜添国产精品| 欧美美女直播网站| 男女激情视频一区| 精品女同一区二区| 国产麻豆精品视频| 久久先锋资源网| 国产91精品久久久久久久网曝门| 久久久99久久| 成人禁用看黄a在线| 综合久久国产九一剧情麻豆| 色香蕉久久蜜桃| 亚洲不卡一区二区三区| 欧美日韩国产综合草草| 日韩经典中文字幕一区| 精品久久免费看| 成人免费观看视频| 亚洲免费观看高清完整版在线| 在线看日韩精品电影| 午夜影视日本亚洲欧洲精品| 欧美欧美欧美欧美| 经典一区二区三区| 中文av一区特黄| 欧美体内she精高潮| 奇米影视一区二区三区小说| 精品999久久久| 成人污视频在线观看| 亚洲影院在线观看| 日韩精品一区国产麻豆| 丰满放荡岳乱妇91ww| 亚洲一区二区不卡免费| 欧美成人一级视频| 99视频在线观看一区三区| 亚洲成人av电影| 久久精品亚洲一区二区三区浴池| 97se亚洲国产综合在线| 日韩二区三区在线观看| 国产欧美精品在线观看| 在线观看一区不卡| 韩国三级在线一区| 一区二区不卡在线播放| 日韩一区二区三区视频在线观看| 成人午夜av在线| 水野朝阳av一区二区三区| 久久在线观看免费| 91黄色在线观看| 久久99久久久欧美国产| 亚洲同性gay激情无套| 欧美一区二区三区在线| 91麻豆视频网站| 久久99国产精品免费| 一区二区三区精品在线| 久久综合九色综合97_久久久| 91成人看片片| 福利一区福利二区| 日韩成人dvd| 亚洲日本电影在线| 久久综合成人精品亚洲另类欧美| 欧洲国内综合视频| 国产91在线看| 久久99精品一区二区三区| 一区二区三区免费网站| 日本一区二区三区四区| 日韩欧美一区二区在线视频| 色综合一区二区三区| 国产麻豆日韩欧美久久| 视频精品一区二区|