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

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

?? print.c

?? bootup code for Barebone, it s useful for bring up new chip
?? C
字號:
/* * Copyright (C) 2001 MontaVista Software Inc. * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net * * 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. * */#include	"print.h"/* macros */#define		IsDigit(x)	( ((x) >= '0') && ((x) <= '9') )#define		Ctod(x)		( (x) - '0')/* forward declaration */extern int PrintChar(char *, char, int, int);extern int PrintString(char *, char *, int, int);extern int PrintNum(char *, unsigned long, int, int, int, int, char, int);/* private variable */static const char theFatalMsg[] = "fatal error in lp_Print!";/* -*- * A low level printf() function. */voidlp_Print(void (*output)(void *, char *, int), 	 void * arg,	 char *fmt, 	 va_list ap){#define 	OUTPUT(arg, s, l)  \  { if (((l) < 0) || ((l) > LP_MAX_BUF)) { \       (*output)(arg, (char*)theFatalMsg, sizeof(theFatalMsg)-1); for(;;); \    } else { \      (*output)(arg, s, l); \    } \  }        char buf[LP_MAX_BUF];    char c;    char *s;    long int num;    int longFlag;    int negFlag;    int width;    int prec;    int ladjust;    char padc;    int length;    for(;;) {	{ 	    /* scan for the next '%' */	    char *fmtStart = fmt;	    while ( (*fmt != '\0') && (*fmt != '%')) {		fmt ++;	    }	    /* flush the string found so far */	    OUTPUT(arg, fmtStart, fmt-fmtStart);	    /* are we hitting the end? */	    if (*fmt == '\0') break;	}	/* we found a '%' */	fmt ++;		/* check for long */	if (*fmt == 'l') {	    longFlag = 1;	    fmt ++;	} else {	    longFlag = 0;	}	/* check for other prefixes */	width = 0;	prec = -1;	ladjust = 0;	padc = ' ';	if (*fmt == '-') {	    ladjust = 1;	    fmt ++;	}	if (*fmt == '0') {	    padc = '0';	    fmt++;	}	if (IsDigit(*fmt)) {	    while (IsDigit(*fmt)) {		width = 10 * width + Ctod(*fmt++);	    }	}	if (*fmt == '.') {	    fmt ++;	    if (IsDigit(*fmt)) {		prec = 0;		while (IsDigit(*fmt)) {		    prec = prec*10 + Ctod(*fmt++);		}	    }	}	/* check format flag */	negFlag = 0;	switch (*fmt) {	 case 'b':	    if (longFlag) { 		num = va_arg(ap, long int); 	    } else { 		num = va_arg(ap, int);	    }	    length = PrintNum(buf, num, 2, 0, width, ladjust, padc, 0);	    OUTPUT(arg, buf, length);	    break;	 case 'd':	 case 'D':	    if (longFlag) { 		num = va_arg(ap, long int);	    } else { 		num = va_arg(ap, int); 	    }	    if (num < 0) {		num = - num;		negFlag = 1;	    }	    length = PrintNum(buf, num, 10, negFlag, width, ladjust, padc, 0);	    OUTPUT(arg, buf, length);	    break;	 case 'o':	 case 'O':	    if (longFlag) { 		num = va_arg(ap, long int);	    } else { 		num = va_arg(ap, int); 	    }	    length = PrintNum(buf, num, 8, 0, width, ladjust, padc, 0);	    OUTPUT(arg, buf, length);	    break;	 case 'u':	 case 'U':	    if (longFlag) { 		num = va_arg(ap, long int);	    } else { 		num = va_arg(ap, int); 	    }	    length = PrintNum(buf, num, 10, 0, width, ladjust, padc, 0);	    OUTPUT(arg, buf, length);	    break;	    	 case 'x':	    if (longFlag) { 		num = va_arg(ap, long int);	    } else { 		num = va_arg(ap, int); 	    }	    length = PrintNum(buf, num, 16, 0, width, ladjust, padc, 0);	    OUTPUT(arg, buf, length);	    break;	 case 'X':	    if (longFlag) { 		num = va_arg(ap, long int);	    } else { 		num = va_arg(ap, int); 	    }	    length = PrintNum(buf, num, 16, 0, width, ladjust, padc, 1);	    OUTPUT(arg, buf, length);	    break;	 case 'c':	    c = (char)va_arg(ap, int);	    length = PrintChar(buf, c, width, ladjust);	    OUTPUT(arg, buf, length);	    break;	 case 's':	    s = (char*)va_arg(ap, char *);	    length = PrintString(buf, s, width, ladjust);	    OUTPUT(arg, buf, length);	    break;	 case '\0':	    fmt --;	    break;	 default:	    /* output this char as it is */	    OUTPUT(arg, fmt, 1);	}	/* switch (*fmt) */	fmt ++;    }		/* for(;;) */    /* special termination call */    OUTPUT(arg, "\0", 1);}/* --------------- local help functions --------------------- */intPrintChar(char * buf, char c, int length, int ladjust){    int i;        if (length < 1) length = 1;    if (ladjust) {	*buf = c;	for (i=1; i< length; i++) buf[i] = ' ';    } else {	for (i=0; i< length-1; i++) buf[i] = ' ';	buf[length - 1] = c;    }    return length;}intPrintString(char * buf, char* s, int length, int ladjust){    int i;    int len=0;    char* s1 = s;    while (*s1++) len++;    if (length < len) length = len;    if (ladjust) {	for (i=0; i< len; i++) buf[i] = s[i];	for (i=len; i< length; i++) buf[i] = ' ';    } else {	for (i=0; i< length-len; i++) buf[i] = ' ';	for (i=length-len; i < length; i++) buf[i] = s[i-length+len];    }    return length;}intPrintNum(char * buf, unsigned long u, int base, int negFlag, 	 int length, int ladjust, char padc, int upcase){    /* algorithm :     *  1. prints the number from left to right in reverse form.     *  2. fill the remaining spaces with padc if length is longer than     *     the actual length     *     TRICKY : if left adjusted, no "0" padding.     *		    if negtive, insert  "0" padding between "0" and number.     *  3. if (!ladjust) we reverse the whole string including paddings     *  4. otherwise we only reverse the actual string representing the num.     */    int actualLength =0;    char *p = buf;    int i;    do {	int tmp = u %base;	if (tmp <= 9) {	    *p++ = '0' + tmp;	} else if (upcase) {	    *p++ = 'A' + tmp - 10;	} else {	    *p++ = 'a' + tmp - 10;	}	u /= base;    } while (u != 0);    if (negFlag) {	*p++ = '-';    }    /* figure out actual length and adjust the maximum length */    actualLength = p - buf;    if (length < actualLength) length = actualLength;    /* add padding */    if (ladjust) {	padc = ' ';    }    if (negFlag && !ladjust && (padc == '0')) {	for (i = actualLength-1; i< length-1; i++) buf[i] = padc;	buf[length -1] = '-';    } else {	for (i = actualLength; i< length; i++) buf[i] = padc;    }	        /* prepare to reverse the string */    {	int begin = 0;	int end;	if (ladjust) {	    end = actualLength - 1;	} else {	    end = length -1;	}	while (end > begin) {	    char tmp = buf[begin];	    buf[begin] = buf[end];	    buf[end] = tmp;	    begin ++;	    end --;	}    }    /* adjust the string pointer */    return length;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影视一区二区三区| 亚洲成人av一区二区| 亚洲精品国产a| 精品一区二区日韩| 在线精品视频免费观看| 久久先锋资源网| 亚洲成人7777| 一本色道久久综合亚洲91| 欧美精品一区二区三区蜜桃视频| 亚洲老司机在线| 国产白丝精品91爽爽久久| 欧美一区二视频| 亚洲国产另类精品专区| 成人av在线资源网| 欧美精品一区二区三| 日韩av电影免费观看高清完整版| 色88888久久久久久影院野外| 国产目拍亚洲精品99久久精品| 日本伊人色综合网| 欧美二区乱c少妇| 亚洲制服丝袜一区| 在线欧美日韩国产| 一区二区三区在线播放| 99精品视频一区| 国产色婷婷亚洲99精品小说| 国产综合色在线视频区| 欧美xxxxx裸体时装秀| 蜜桃av噜噜一区| 欧美一区二区三区成人| 琪琪一区二区三区| 欧美美女一区二区三区| 久久99久久久欧美国产| 欧美狂野另类xxxxoooo| 婷婷综合久久一区二区三区| 欧美视频第二页| 午夜影院久久久| 69堂精品视频| 精品午夜久久福利影院 | 成人网男人的天堂| 中文字幕不卡在线播放| 国产盗摄女厕一区二区三区| 久久久不卡网国产精品一区| 国产成人精品www牛牛影视| 欧美激情综合五月色丁香小说| 国产风韵犹存在线视精品| 欧美激情在线一区二区三区| 成人h动漫精品一区二区| 亚洲三级久久久| 欧美性高清videossexo| 青青草国产精品97视觉盛宴 | 一区二区三区欧美日| 欧美无人高清视频在线观看| 午夜a成v人精品| 欧美精品一区二区三区很污很色的| 免播放器亚洲一区| 国产视频一区二区在线| 91看片淫黄大片一级| 五月婷婷久久综合| 久久免费美女视频| 99久免费精品视频在线观看| 亚洲一二三区不卡| 精品日韩一区二区| jlzzjlzz国产精品久久| 一区二区三区在线观看视频| 日韩免费一区二区三区在线播放| 国产91丝袜在线18| 五月婷婷综合激情| 久久精品一区四区| 在线观看91精品国产入口| 久久精品噜噜噜成人88aⅴ| 亚洲国产高清不卡| 欧美日韩成人综合| 粉嫩一区二区三区性色av| 亚洲综合男人的天堂| 精品久久国产老人久久综合| 97久久超碰国产精品| 国产精品一线二线三线精华| 欧美高清在线一区二区| 91精品91久久久中77777| 久久成人18免费观看| 亚洲黄色av一区| xvideos.蜜桃一区二区| 欧美日韩三级在线| 成人黄色小视频| 久久91精品久久久久久秒播| 亚洲女爱视频在线| 久久婷婷色综合| 4438成人网| 91国产视频在线观看| 粉嫩av一区二区三区粉嫩| 免费成人av在线播放| 亚洲精品第一国产综合野| 精品成人在线观看| 欧美男男青年gay1069videost | 日韩制服丝袜av| 中文字幕视频一区二区三区久| 欧美成人一区二区三区| 欧美日韩一级黄| 99re这里都是精品| 成人综合婷婷国产精品久久蜜臀| 免费人成网站在线观看欧美高清| 亚洲欧美色一区| 国产精品第13页| 日本一区二区高清| 久久久欧美精品sm网站| 日韩欧美国产一区二区三区| 欧美男女性生活在线直播观看| 日本高清视频一区二区| 99久久精品久久久久久清纯| 高清av一区二区| 国产美女精品人人做人人爽| 日本三级亚洲精品| 秋霞电影一区二区| 日韩综合小视频| 日韩高清在线观看| 免费久久99精品国产| 免费的成人av| 久久国产日韩欧美精品| 另类中文字幕网| 91麻豆自制传媒国产之光| 成人a级免费电影| 99国内精品久久| 欧美性色黄大片| 欧美日韩一区视频| 欧美一区二区三区在线电影| 欧美一区国产二区| 精品日韩欧美在线| 国产人久久人人人人爽| 国产精品欧美一级免费| 亚洲视频在线一区观看| 一区二区三区精品在线| 爽好久久久欧美精品| 麻豆成人免费电影| 国产成人h网站| 99re亚洲国产精品| 7777精品伊人久久久大香线蕉的 | 成人午夜激情在线| 91香蕉视频mp4| 欧美精品久久天天躁| 日韩欧美一级精品久久| 国产日韩精品一区二区三区| 亚洲欧美自拍偷拍| 亚洲国产美女搞黄色| 国产一区在线不卡| 色综合婷婷久久| 91精品一区二区三区久久久久久| 欧美变态凌虐bdsm| 中文字幕一区二区三区四区不卡| 亚洲主播在线观看| 国产最新精品免费| 色狠狠综合天天综合综合| 91麻豆精品国产91久久久资源速度 | 日韩精品电影在线观看| 国产精品一级二级三级| 91久久奴性调教| 久久在线观看免费| 一区二区欧美国产| 国产一区二区免费视频| 日本高清成人免费播放| 亚洲精品在线三区| 亚洲一卡二卡三卡四卡五卡| 国产麻豆成人传媒免费观看| 色狠狠色狠狠综合| 久久久国产精品麻豆| 性久久久久久久| 99精品国产99久久久久久白柏| 日韩一级免费观看| 亚洲一区在线视频| 成人午夜免费电影| 日韩精品一区二区三区在线播放| 亚洲美女免费视频| 国产精品亚洲午夜一区二区三区 | www.欧美日韩| 日韩美女一区二区三区| 亚洲精品国产精品乱码不99 | 日产欧产美韩系列久久99| 91女厕偷拍女厕偷拍高清| 久久久久高清精品| 蜜桃一区二区三区在线| 欧美在线视频不卡| 亚洲视频免费在线观看| 国产福利一区在线| 欧美tickle裸体挠脚心vk| 偷偷要91色婷婷| 欧美日本一区二区在线观看| 中文字幕制服丝袜一区二区三区| 国产在线乱码一区二区三区| 337p亚洲精品色噜噜| 亚洲aaa精品| 欧美视频一区在线观看| 亚洲伦理在线免费看| 91在线视频播放地址| 国产亚洲美州欧州综合国| 蓝色福利精品导航| 日韩色在线观看| 另类人妖一区二区av| 日韩午夜av一区| 精品一区二区三区欧美| 日韩欧美你懂的| 精品在线你懂的|