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

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

?? fcvt.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
字號:
/***
*fcvt.c - convert floating point value to string
*
*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       Converts a floating point value to a string.
*
*******************************************************************************/

#include <cruntime.h>
#include <fltintrn.h>
#include <cvt.h>
#include <mtdll.h>
#include <stdlib.h>
#include <dbgint.h>

/*
 * The static character array buf[CVTBUFSIZE] is used by the _fpcvt routine
 * (the workhorse for _ecvt and _fcvt) for storage of its output.  The routine
 * gcvt expects the user to have set up their own storage.  CVTBUFSIZE is set
 * large enough to accomodate the largest double precision number plus 40
 * decimal places (even though you only have 16 digits of accuracy in a
 * double precision IEEE number, the user may ask for more to effect 0
 * padding; but there has to be a limit somewhere).
 */

/*
 * define a maximum size for the conversion buffer.  It should be at least
 * as long as the number of digits in the largest double precision value
 * (?.?e308 in IEEE arithmetic).  We will use the same size buffer as is
 * used in the printf support routine (_output)
 */

#ifdef _MT
char * __cdecl _fpcvt(STRFLT, int, int *, int *);
#else  /* _MT */
static char * __cdecl _fpcvt(STRFLT, int, int *, int *);
static char buf[CVTBUFSIZE];
#endif  /* _MT */

/***
*char *_fcvt(value, ndec, decpr, sign) - convert floating point to char string
*
*Purpose:
*       _fcvt like _ecvt converts the value to a null terminated
*       string of ASCII digits, and returns a pointer to the
*       result.  The routine prepares data for Fortran F-format
*       output with the number of digits following the decimal
*       point specified by ndec.  The position of the decimal
*       point relative to the beginning of the string is returned
*       indirectly through decpt.  The correct digit for Fortran
*       F-format is rounded.
*       NOTE - to avoid the possibility of generating floating
*       point instructions in this code we fool the compiler
*       about the type of the 'value' parameter using a struct.
*       This is OK since all we do is pass it off as a
*       parameter.
*
*Entry:
*       double value - number to be converted
*       int ndec - number of digits after decimal point
*
*Exit:
*       returns pointer to the character string representation of value.
*       also, the output is written into the static char array buf.
*       int *decpt - pointer to int with pos. of dec. point
*       int *sign - pointer to int with sign (0 = pos, non-0 = neg)
*
*Exceptions:
*
*******************************************************************************/

char * __cdecl _fcvt (
        double value,
        int ndec,
        int *decpt,
        int *sign
        )
{
        REG1 STRFLT pflt;

#ifdef _MT
        struct _strflt strfltstruct;
        char resultstring[21];

        /* ok to take address of stack struct here; fltout2 knows to use ss */
        pflt = _fltout2( value, &strfltstruct, resultstring );


#else  /* _MT */
        pflt = _fltout( value );
#endif  /* _MT */

        return( _fpcvt( pflt, pflt->decpt + ndec, decpt, sign ) );
}


/***
*char *_ecvt( value, ndigit, decpt, sign ) - convert floating point to string
*
*Purpose:
*       _ecvt converts value to a null terminated string of
*       ASCII digits, and returns a pointer to the result.
*       The position of the decimal point relative to the
*       begining of the string is stored indirectly through
*       decpt, where negative means to the left of the returned
*       digits.  If the sign of the result is negative, the
*       word pointed to by sign is non zero, otherwise it is
*       zero.  The low order digit is rounded.
*
*Entry:
*       double value - number to be converted
*       int ndigit - number of digits after decimal point
*
*Exit:
*       returns pointer to the character representation of value.
*       also the output is written into the statuc char array buf.
*       int *decpt - pointer to int with position of decimal point
*       int *sign - pointer to int with sign in it (0 = pos, non-0 = neg)
*
*Exceptions:
*
*******************************************************************************/

char * __cdecl _ecvt (
        double value,
        int ndigit,
        int *decpt,
        int *sign
        )
{

        char *retbuf;

#ifdef _MT
        REG1 STRFLT pflt;

        struct _strflt strfltstruct;        /* temporary buffers */
        char resultstring[21];

        /* ok to take address of stack struct here; fltout2 knows to use ss */
        pflt = _fltout2( value, &strfltstruct, resultstring );

        retbuf = _fpcvt( pflt, ndigit, decpt, sign );

#else  /* _MT */
        retbuf = _fpcvt( _fltout(value), ndigit, decpt, sign );
#endif  /* _MT */

        /* _fptostr() occasionally returns an extra character in the buffer ... */

        if (retbuf[ndigit])
                retbuf[ndigit] = '\0';
        return( retbuf );
}


/***
*char *_fpcvt() - gets final string and sets decpt and sign     [STATIC]
*
*Purpose:
*       This is a small common routine used by [ef]cvt.  It calls fptostr
*       to get the final string and sets the decpt and sign indicators.
*
*Entry:
*
*Exit:
*
*Exceptions:
*
*******************************************************************************/

#ifdef _MT
char * __cdecl _fpcvt (
#else  /* _MT */
static char * __cdecl _fpcvt (
#endif  /* _MT */
        REG2 STRFLT pflt,
        REG3 int digits,
        int *decpt,
        int *sign
        )
{

#ifdef _MT

        /* use a per-thread buffer */

        char *buf;

        _ptiddata ptd;

        ptd = _getptd();
        if ( ptd->_cvtbuf == NULL )
                if ( (ptd->_cvtbuf = _malloc_crt(CVTBUFSIZE)) == NULL )
                        return(NULL);
        buf = ptd->_cvtbuf;

#endif  /* _MT */


        /* make sure we don't overflow the buffer size.  If the user asks for
         * more digits than the buffer can handle, truncate it to the maximum
         * size allowed in the buffer.  The maximum size is CVTBUFSIZE - 2
         * since we useone character for overflow and one for the terminating
         * null character.
         */

        _fptostr(buf, (digits > CVTBUFSIZE - 2) ? CVTBUFSIZE - 2 : digits, pflt);

        /* set the sign flag and decimal point position */

        *sign = (pflt->sign == '-') ? 1 : 0;
        *decpt = pflt->decpt;
        return(buf);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品久久久久婷婷884| 欧美人妖巨大在线| 青草av.久久免费一区| 亚洲精品老司机| 亚洲免费观看视频| 亚洲一区二区三区美女| 亚洲色图第一区| 亚洲最快最全在线视频| 亚洲乱码国产乱码精品精小说| 亚洲欧洲日产国码二区| 亚洲精品日产精品乱码不卡| 一区二区三区四区亚洲| 亚洲成人自拍网| 美女一区二区在线观看| 国产一区在线观看视频| 99久久99久久精品国产片果冻| 色综合久久88色综合天天| 欧美色图片你懂的| 精品精品国产高清a毛片牛牛| www国产精品av| 依依成人综合视频| 免费视频一区二区| 丁香啪啪综合成人亚洲小说| 91成人在线精品| 精品盗摄一区二区三区| 亚洲少妇最新在线视频| 日韩精品一级中文字幕精品视频免费观看 | 中文字幕av一区二区三区高| 中文乱码免费一区二区| 亚洲成a人片在线不卡一二三区| 青青草一区二区三区| 国产suv精品一区二区三区| 欧美亚洲国产怡红院影院| www一区二区| 亚洲sss视频在线视频| 国产99精品国产| 91精品国产手机| 亚洲人成精品久久久久| 美国欧美日韩国产在线播放| 97精品国产露脸对白| 日韩精品一区二区三区蜜臀| 日韩一区中文字幕| 激情文学综合丁香| 欧美视频一区二区三区在线观看 | 日韩电影在线观看电影| 成人免费视频视频| 日韩欧美国产综合| 有坂深雪av一区二区精品| 国产麻豆成人精品| 91精品国产一区二区三区香蕉| 国产精品理论在线观看| 精彩视频一区二区三区| 91精品欧美一区二区三区综合在| 中文字幕精品在线不卡| 激情久久久久久久久久久久久久久久| 91福利区一区二区三区| 亚洲欧洲韩国日本视频| 国产一区二区三区av电影 | 黄色日韩网站视频| 欧美老人xxxx18| 一区二区三区四区亚洲| 99久久精品国产导航| 国产欧美精品一区二区色综合朱莉| 午夜久久电影网| 欧美日韩一级黄| 亚洲图片欧美一区| 一本大道av一区二区在线播放| 国产精品久久久久久久久搜平片| 国产在线播精品第三| 欧美videofree性高清杂交| 欧美96一区二区免费视频| 91精品一区二区三区在线观看| 亚洲一二三区在线观看| 欧美亚洲综合另类| 亚洲女人****多毛耸耸8| 99精品久久只有精品| 国产精品美女久久久久久2018| 成人网页在线观看| 亚洲色图都市小说| 欧美日韩一区二区三区视频| 亚洲第一搞黄网站| 日韩欧美在线影院| 国产一区欧美一区| 欧美激情在线看| 色综合久久九月婷婷色综合| 亚洲一区免费在线观看| 欧美日韩一区二区电影| 久久国产日韩欧美精品| 久久久久一区二区三区四区| 成人激情免费视频| 一区二区三区精品在线| 91.com视频| 国产成人综合亚洲网站| 亚洲精品少妇30p| 欧美一区二区免费视频| 从欧美一区二区三区| 亚洲一区二区三区在线看| 538prom精品视频线放| 狠狠色综合播放一区二区| 成人免费在线观看入口| 欧美精品九九99久久| 国产在线不卡视频| 亚洲与欧洲av电影| 久久先锋影音av| 欧美午夜一区二区三区 | 国产精品三级视频| 欧美精三区欧美精三区| 国产精品2024| 亚洲福利电影网| 国产日韩v精品一区二区| 色天天综合色天天久久| 精品一区二区影视| 夜夜嗨av一区二区三区| 久久久精品免费网站| 欧美日韩国产乱码电影| 成人免费视频视频在线观看免费 | 欧美国产精品中文字幕| 欧美一区二区三区视频在线观看| 国产成a人亚洲| 蜜桃视频免费观看一区| 亚洲日本一区二区三区| 欧美成人乱码一区二区三区| 91高清在线观看| 成人福利在线看| 另类欧美日韩国产在线| 亚洲一区二区欧美日韩 | 欧美性大战xxxxx久久久| 成人免费电影视频| 久久不见久久见免费视频7| 亚洲一区二区三区在线| 亚洲欧洲国产日韩| 国产精品视频在线看| 精品国产成人在线影院 | 国产精品久久久久久久蜜臀| 欧美mv日韩mv国产网站app| 91精品综合久久久久久| 欧美日韩专区在线| 91国偷自产一区二区使用方法| 成人免费观看av| 成人免费视频视频在线观看免费| 国产米奇在线777精品观看| 久久精品72免费观看| 日本大胆欧美人术艺术动态| 天堂一区二区在线| 亚洲bt欧美bt精品| 午夜成人免费视频| 日韩av一二三| 人人爽香蕉精品| 麻豆精品一二三| 国产在线一区二区综合免费视频| 日韩高清在线一区| 美女性感视频久久| 久久se这里有精品| 国产高清精品在线| 99在线精品免费| 99re热这里只有精品视频| 97se亚洲国产综合在线| 在线一区二区三区四区五区| 一本大道久久精品懂色aⅴ| 欧美性受极品xxxx喷水| 欧美高清性hdvideosex| 日韩亚洲欧美高清| 久久婷婷国产综合国色天香| 久久久精品欧美丰满| 国产精品电影一区二区三区| 亚洲欧美综合另类在线卡通| 一级女性全黄久久生活片免费| 图片区日韩欧美亚洲| 青青青爽久久午夜综合久久午夜| 麻豆免费看一区二区三区| 国产不卡在线一区| 欧美综合视频在线观看| 91精品国产综合久久福利软件| 精品嫩草影院久久| 中文字幕在线免费不卡| 视频一区视频二区中文字幕| 蜜臀精品一区二区三区在线观看| 国产一区二区网址| 91国偷自产一区二区三区观看| 69堂亚洲精品首页| 国产日韩v精品一区二区| 夜夜揉揉日日人人青青一国产精品| 亚洲成人一区二区| 国产91对白在线观看九色| 欧美午夜一区二区| 国产亚洲综合性久久久影院| 亚洲美女精品一区| 久久99精品视频| 一本到三区不卡视频| 26uuu色噜噜精品一区二区| 亚洲欧洲精品一区二区精品久久久| 首页国产欧美久久| av不卡一区二区三区| 555www色欧美视频| 亚洲精品久久久久久国产精华液| 久久er精品视频| 欧美日韩国产影片| 国产精品福利影院| 国产综合久久久久久久久久久久 | 日韩不卡一区二区三区|