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

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

?? floatlib.c

?? vxworks的完整的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* floatLib.c - floating-point formatting and scanning library *//* Copyright 1984-2001 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------02f,19oct01,dcb  Fix the routine title line to match the coding conventions.02e,14mar99,jdi  doc: removed refs to config.h and/or configAll.h (SPR 25663).02d,30jul96,dbt  fixed floatScan to avoid loose of precision (SPR #3829). 		 Updated copyright.02c,01dec94,ism  fixed alt 'g' format bug.  Added in-line docs.02b,06oct94,ism  fixed %.XXg outputting more than XX sig figs (SPR#3695)02a,27jan93,jdi  documentation cleanup for 5.1; fixed SPR 1399.01z,30jul92,kdl  Restored 01w changes (clobbered by 01x); removed fpTypeGet()		 and isInf, isNan, & isZero macros.01y,30jul92,rrr  Removed decl of DOUBLE (now in mathLibP.h)01x,30jul92,smb  (Accidental checkin.)01w,30jul92,kdl  Significantly reworked for new ansi fio; moved frexp(), 	   +jcf	 ldexp(), modf() to src/libc/math; moved DOUBLE union 		 definition to mathP.h; removed special handling for i960.01v,18jul92,smb  Changed errno.h to errnoLib.h.01u,13jul92,smb  frexp, ldexp, modf now in libc for the SPARC (temporary change)01t,26may92,rrr  the tree shuffle01s,04mar92,wmd  placed declaration of atof() outside of 960 conditional,		 included string.h.01r,10dec91,gae  added includes for ANSI.01q,28oct91,wmd  added in type casting for *pCh in floatScan as per Intel mods.01p,04oct91,rrr  passed through the ansification filter                  -changed functions to ansi style		  -changed includes to have absolute path from h/		  -fixed #else and #endif		  -changed VOID to void		  -changed copyright notice01o,09jun91,del  integration of mods by intel for interfacing to gnu960		 libraries and fix bugs from 01m.01n,05apr91,jdi	 documentation -- removed header parens and x-ref numbers;		 doc review by dnw.01m,25mar91,del  interfaces to gnu960 flt. pt. libraries for I960CA01l,07feb91,jaa	 documentation cleanup.01k,23aug90,elr  Documentation01j,01aug90,dnw  fixed bug in floatScan scanning <nn>e<nn> format numbers.		 changed floatFormat to take pVaList instead of vaList.01i,04jun90,dnw  changed floatFormat to take a vararg va_list instead of a		   double arg, so that fioLib can be free of all flt pt refs.		 replaced floatAtoF with new routine floatScan, written		   from scratch, with our own algorithm for scanning flt pt		   numbers, designed to work with scanField() in fioLib.		 fixed bug incorrectly scanning large numbers that are too big.		 fixed documentation.		 make ecvtb, fcvtb, gcvtb be "no manual".01h,07mar90,jdi  documentation cleanup.01g,20apr89,dab  fixed precision bug in cvtb().		 documentation touchup in fcvtb() and cvtb().01f,05jun88,dnw  changed name from fltLib to floatLib.01e,30may88,dnw  changed to v4 names.01d,28may88,dnw  changed atof() to fltAtoF().01c,17mar88,gae  added 'E' and 'G' format specifiers.01b,05nov87,jlf  documentation01a,01aug87,gae  written/extracted from fioLib.c.*//*DESCRIPTIONThis library provides the floating-point I/O formatting and scanningsupport routines.The floating-point formatting and scanning support routines are notdirectly callable; they are connected to call-outs in the printf()/scanf()family of functions in fioLib.  This is done dynamically by the routinefloatInit(), which is called by the root task, usrRoot(), in usrConfig.cwhen the configuration macro INCLUDE_FLOATING_POINT is defined.If this option is omitted (i.e., floatInit() is not called), floating-pointformat specifications in printf() and sscanf() are not supported.INCLUDE FILES: math.hSEE ALSO: fioLib*/#include "vxWorks.h"#include "vwModNum.h"#include "fioLib.h"#include "string.h"#include "stdlib.h"#include "ctype.h"#include "string.h"#include "errnoLib.h"#include "math.h"#include "limits.h"#include "stdarg.h"#include "fioLib.h"#include "private/floatioP.h"#include "private/mathP.h"/* macros */#define	to_digit(c)	((c) - '0')#define is_digit(c)	((unsigned)to_digit(c) <= 9)#define	to_char(n)	((n) + '0')/* forward static functions */LOCAL int 	floatFormat (va_list *pVaList, int precision, BOOL doAlt, 		             int fmtSym, BOOL *pDoSign, char *pBufStart, 		             char *pBufEnd);LOCAL BOOL 	floatScan (int *pReturn, int returnSpec, int fieldwidth,		           FUNCPTR getRtn, int getArg, int *pCh, int *pNchars);LOCAL int 	cvt (double number, int prec, BOOL doAlt, int fmtch,	       	     BOOL *pDoSign, char *startp, char *endp);LOCAL char *	exponentCvt (char *p, int exp, int fmtch);LOCAL char *	roundCvt (double fract, int *exp, char *start, char *end, 			  char ch, BOOL *pDoSign);LOCAL int	floatFpTypeGet ( double v, double * r);/********************************************************************************* floatInit - initialize floating-point I/O support** This routine must be called if floating-point format specifications are* to be supported by the printf()/scanf() family of routines.* If the configuration macro INCLUDE_FLOATING_POINT is defined, it is called* by the root task, usrRoot(), in usrConfig.c.** RETURNS: N/A*/void floatInit (void)    {    fioFltInstall ((FUNCPTR)floatFormat, (FUNCPTR)floatScan);    }/********************************************************************************* floatFormat - format arg for output** This routine converts from a floating-point value to an ASCII representation.* The <fmtSym> parameter indicates the format type desired; the actual work* is done in cvt.** RETURNS: number of characters placed in buffer*/LOCAL int floatFormat     (    va_list *	pVaList,	/* vararg list */    int		precision,	/* precision */    BOOL	doAlt, 		/* doAlt boolean */    int		fmtSym,		/* format symbol */    BOOL *	pDoSign, 	/* where to fill in doSign result */    char *	pBufStart,	/* buffer start */    char *	pBufEnd		/* buffer end */    )    {    double dbl = (double) va_arg (*pVaList, double);    *pDoSign = FALSE;				/* assume no sign needed */    if (isInf(dbl)) 				/* infinite? */	{	strcpy (pBufStart, "Inf");		/* fill in the string */	if (dbl < 0.0)				/* less than 0.0 */	    *pDoSign = TRUE;			/* we need a sign */	return (-3);				/* length will be three */	}    if (isNan(dbl)) 				/* not a number? */	{	strcpy (pBufStart, "NaN");		/* fill in the string */	return (-3);				/* length will be three */	}    return (cvt (dbl, precision, doAlt, fmtSym, pDoSign, pBufStart, pBufEnd));    }/******************************************************************************* * cvt - helper function for floatFormat* * RETURNS: */LOCAL int cvt    (    double	number,    FAST int	prec,    BOOL	doAlt,    int		fmtch,    BOOL *	pDoSign,    char *	startp,    char *	endp    )    {    FAST char *	p;    FAST char *	t;    FAST double fract;    int 	dotrim;    int 	expcnt;    int 	gformat;	int		nonZeroInt=FALSE;    double 	integer;    double	tmp;    dotrim = expcnt = gformat = 0;    if (number < 0) 	{	number = -number;	*pDoSign = TRUE;	}    else	*pDoSign = FALSE;    fract = modf(number, &integer);	if(integer!=(double)0.0)		nonZeroInt=TRUE;    t = ++startp;			/* get an extra slot for rounding. */    /* get integer portion of number; put into the end of the buffer; the     * .01 is added for modf(356.0 / 10, &integer) returning .59999999...     */    for (p = endp - 1; integer; ++expcnt) 	{	tmp  = modf(integer / 10, &integer);	*p-- = to_char((int)((tmp + .01) * 10));	}    switch (fmtch) 	{	case 'f':		/* reverse integer into beginning of buffer */		if (expcnt)		    for (; ++p < endp; *t++ = *p);		else		    *t++ = '0';		/* if precision required or alternate flag set, add in a		 * decimal point.		 */		if (prec || doAlt)		    *t++ = '.';		/* if requires more precision and some fraction left */		if (fract) 		    {		    if (prec)			do 			    {			    fract = modf(fract * 10, &tmp);			    *t++  = to_char((int)tmp);			    } while (--prec && fract);		    if (fract)			startp = roundCvt (fract, (int *)NULL, startp, t - 1,				       (char)0, pDoSign);		    }		for (; prec--; *t++ = '0')		    ;		break;	case 'e':	case 'E':eformat:	if (expcnt) 		    {		    *t++ = *++p;		    if (prec || doAlt)			*t++ = '.';		    /* if requires more precision and some integer left */		    for (; prec && ++p < endp; --prec)			*t++ = *p;		    /* if done precision and more of the integer component,		     * round using it; adjust fract so we don't re-round		     * later.		     */		    if (!prec && ++p < endp)			{			fract  = 0;			startp = roundCvt((double)0, &expcnt, startp, t - 1, *p,				       pDoSign);			}		    --expcnt;	/* adjust expcnt for dig. in front of decimal */		    }		/* until first fractional digit, decrement exponent */		else if (fract) 		    {		    /* adjust expcnt for digit in front of decimal */		    for (expcnt = -1;; --expcnt) 			{			fract = modf(fract * 10, &tmp);			if (tmp)			    break;			}		    *t++ = to_char((int)tmp);		    if (prec || doAlt)			*t++ = '.';		    }		else 		    {		    *t++ = '0';		    if (prec || doAlt)			*t++ = '.';		    }		/* if requires more precision and some fraction left */		if (fract) 		    {		    if (prec)			do 			    {			    fract = modf(fract * 10, &tmp);			    *t++ = to_char((int)tmp);			    } while (--prec && fract);		    if (fract)			startp = roundCvt(fract, &expcnt, startp, t - 1,(char)0,				          pDoSign);		    }		for (; prec--; *t++ = '0')	/* if requires more precision */		    ;		/* unless alternate flag, trim any g/G format trailing 0's */		if (gformat && !doAlt) 		    {		    while (t > startp && *--t == '0')			;		    if (*t == '.')			--t;		    ++t;		    }		t = exponentCvt (t, expcnt, fmtch);		break;	case 'g':	case 'G':		/* a precision of 0 is treated as a precision of 1. */		if (!prec)		    ++prec;		/*		 * ``The style used depends on the value converted; style e		 * will be used only if the exponent resulting from the		 * conversion is less than -4 or greater than the precision.''		 *	-- ANSI X3J11		 */		if (expcnt > prec || !expcnt && fract && fract < .0001) 		    {		    /*		     * g/G format counts "significant digits, not digits of		     * precision; for the e/E format, this just causes an		     * off-by-one problem, i.e. g/G considers the digit		     * before the decimal point significant and e/E doesn't		     * count it as precision.		     */		    --prec;		    fmtch  -= 2;		/* G->E, g->e */		    gformat = 1;		    goto eformat;		    }		/*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
偷拍一区二区三区四区| 久久综合色综合88| 亚洲第一电影网| 欧美乱熟臀69xxxxxx| 亚洲国产一区二区三区| 欧美日韩国产系列| 日韩精品一二三四| 欧美精品一区二区三区蜜臀| 国产美女精品人人做人人爽 | 精品嫩草影院久久| 国产原创一区二区| 国产精品视频九色porn| 色94色欧美sute亚洲线路一久| 亚洲一区二区av电影| 9191成人精品久久| 国产精品一区二区果冻传媒| 中文字幕在线播放不卡一区| 欧美亚洲综合一区| 久久精品72免费观看| 国产精品美女久久福利网站| 在线精品观看国产| 国产一区福利在线| 亚洲欧美日韩在线播放| 这里是久久伊人| 成人性生交大片免费看在线播放| 悠悠色在线精品| 久久久蜜桃精品| 色婷婷久久99综合精品jk白丝| 日韩 欧美一区二区三区| 国产农村妇女精品| 欧美日韩视频不卡| 成人一级视频在线观看| 日韩国产成人精品| 综合色中文字幕| 日韩欧美国产一区二区三区 | 99精品视频在线免费观看| 亚洲大型综合色站| 国产精品人成在线观看免费| 欧美日韩精品一区二区三区| 国产成人综合亚洲网站| 午夜视频一区二区三区| 成人免费在线视频观看| 26uuu精品一区二区在线观看| 91免费视频网| 国产精品一品二品| 日韩精品视频网站| 亚洲精选在线视频| 国产欧美日韩另类一区| 欧美成人国产一区二区| 欧美三级欧美一级| 99riav一区二区三区| 国产河南妇女毛片精品久久久| 日日夜夜一区二区| 亚洲女同ⅹxx女同tv| 欧美韩国日本综合| 久久久久久日产精品| 日韩一区二区三区视频在线观看| 色综合天天视频在线观看 | 国产精品二三区| 久久嫩草精品久久久久| 911精品国产一区二区在线| 日本韩国精品在线| 99综合电影在线视频| 国产精品一区二区男女羞羞无遮挡 | 蜜桃av一区二区在线观看| 亚洲男同性恋视频| 亚洲美女免费在线| 亚洲欧美一区二区三区国产精品| 欧美国产一区视频在线观看| 久久久噜噜噜久久中文字幕色伊伊| 欧美一区二区精品| 6080yy午夜一二三区久久| 欧美午夜精品电影| 欧美日韩一本到| 欧美一级午夜免费电影| 56国语精品自产拍在线观看| 777奇米成人网| 欧美一级二级三级乱码| 日韩欧美一二区| 26uuu国产一区二区三区| 精品国产第一区二区三区观看体验| 欧美一级黄色录像| 精品久久久久久久久久久久久久久| 欧美一区在线视频| 日韩午夜在线观看| 2021久久国产精品不只是精品| 久久综合九色综合97婷婷女人| 国产亚洲综合性久久久影院| 国产日韩欧美制服另类| 国产精品久久久久久久岛一牛影视 | 成人av网址在线| av亚洲精华国产精华精华| 99精品热视频| 欧美三级日韩三级国产三级| 日韩一本二本av| 国产午夜精品在线观看| 国产精品久久99| 亚洲在线一区二区三区| 婷婷久久综合九色综合绿巨人 | 欧美日韩精品福利| 日韩一级黄色片| 国产精品少妇自拍| 亚洲美女屁股眼交3| 婷婷亚洲久悠悠色悠在线播放| 激情综合色播五月| 波多野结衣在线一区| 欧美三级资源在线| 久久综合一区二区| 亚洲精品五月天| 美女诱惑一区二区| 99久久99久久精品国产片果冻 | 久久久久国产精品麻豆ai换脸 | 大桥未久av一区二区三区中文| 91美女片黄在线观看91美女| 精品国产乱码久久久久久夜甘婷婷 | 国产99精品视频| 91久久精品一区二区三区| 337p亚洲精品色噜噜噜| 国产欧美一区二区精品婷婷| 亚洲一区二区高清| 国产成人欧美日韩在线电影| 国产精品丝袜黑色高跟| 一区二区高清视频在线观看| 久久99国内精品| 日本韩国精品在线| 久久久亚洲国产美女国产盗摄| 亚洲综合在线免费观看| 国产精品888| 欧美精品一卡二卡| 成人免费视频在线观看| 韩国精品久久久| 欧美日韩1234| 国产精品二三区| 国产成人午夜片在线观看高清观看| 欧美日韩一区中文字幕| 国产精品情趣视频| 精品在线免费视频| 911精品国产一区二区在线| 综合欧美一区二区三区| 国产精品1区2区3区在线观看| 欧美日本在线观看| 亚洲男人的天堂av| 福利一区二区在线| www激情久久| 老司机精品视频线观看86| 欧美日韩午夜精品| 亚洲美女视频一区| aaa国产一区| 欧美国产日韩亚洲一区| 国产揄拍国内精品对白| 日韩你懂的在线播放| 日本最新不卡在线| 欧美三区在线观看| 亚洲图片欧美一区| 欧美在线综合视频| 亚洲欧美日韩中文字幕一区二区三区| 丁香天五香天堂综合| 久久精品欧美一区二区三区不卡| 九九九精品视频| 久久婷婷综合激情| 国产成人自拍网| 久久综合99re88久久爱| 麻豆精品一区二区三区| 欧美一区二区福利视频| 日韩黄色在线观看| 日韩一卡二卡三卡| 久久精品国产久精国产| 欧美电影免费观看高清完整版在线 | 欧美一区二区女人| 美女脱光内衣内裤视频久久网站 | 亚洲成国产人片在线观看| 91极品视觉盛宴| 亚洲一区二区三区四区不卡| 欧美午夜精品一区| 日本v片在线高清不卡在线观看| 欧美日韩成人综合| 久久国产欧美日韩精品| 欧美精品一区二区久久久 | 91伊人久久大香线蕉| 亚洲精品高清在线观看| 欧美午夜精品电影| 蜜臀a∨国产成人精品| 久久久综合九色合综国产精品| 国内精品久久久久影院色| 国产日产欧美一区| 色一情一乱一乱一91av| 亚洲一区二区五区| 亚洲欧美日韩人成在线播放| 欧美日韩中文字幕精品| 秋霞电影网一区二区| 久久理论电影网| 色一情一伦一子一伦一区| 日韩精品免费视频人成| 精品理论电影在线观看| 国产suv一区二区三区88区| 最新中文字幕一区二区三区| 欧美午夜片在线观看| 国产综合色在线视频区| 日韩久久一区二区| 欧美一区二区三区在线电影|