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

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

?? strftime.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
?? 第 1 頁 / 共 3 頁
字號:

/***
*_store_num() - Convert a number to ascii and copy it
*
*Purpose:
*       Convert the supplied number to decimal and store
*       in the output buffer.  Update both the count and
*       buffer pointers.
*
*       *** For internal use with strftime() only ***
*
*Entry:
*       int num = pointer to integer value
*       int digits = # of ascii digits to put into string
*       char **out = address of pointer to output string
*       size_t *count = address of char count (space in output area)
*
*Exit:
*       none
*Exceptions:
*
*******************************************************************************/

static void __cdecl _store_num (
        int num,
        int digits,
        char **out,
        size_t *count
        )
{
int temp=0;

        if (__no_lead_zeros) {
                _store_number (num, out, count);
                return;
        }

        if ((size_t)digits < *count)  {
                for (digits--; (digits+1); digits--) {
                        (*out)[digits] = (char)('0' + num % 10);
                        num /= 10;
                        temp++;
                }
                *out += temp;
                *count -= temp;
        }
else
        *count = 0;
}

/***
*_store_number() - Convert positive integer to string
*
*Purpose:
*       Convert positive integer to a string and store it in the output
*       buffer with no null terminator.  Update both the count and
*       buffer pointers.
*
*       Differs from _store_num in that the precision is not specified,
*       and no leading zeros are added.
*
*       *** For internal use with strftime() only ***
*
*       Created from xtoi.c
*
*Entry:
*       int num = pointer to integer value
*       char **out = address of pointer to output string
*       size_t *count = address of char count (space in output area)
*
*Exit:
*       none
*
*Exceptions:
*       The buffer is filled until it is out of space.  There is no
*       way to tell beforehand (as in _store_num) if the buffer will
*       run out of space.
*
*******************************************************************************/

static void __cdecl _store_number (
        int num,
        char **out,
        size_t *count
        )
{
        char *p;                /* pointer to traverse string */
        char *firstdig;         /* pointer to first digit */
        char temp;              /* temp char */

        p = *out;

        /* put the digits in the buffer in reverse order */
        if (*count > 1)
        {
                do {
                        *p++ = (char) (num % 10 + '0');
                        (*count)--;
                } while ((num/=10) > 0 && *count > 1);
        }

        firstdig = *out;                /* firstdig points to first digit */
        *out = p;                       /* return pointer to next space */
        p--;                            /* p points to last digit */

        /* reverse the buffer */
        do {
                temp = *p;
                *p-- = *firstdig;
                *firstdig++ = temp;     /* swap *p and *firstdig */
        } while (firstdig < p);         /* repeat until halfway */
}


/***
*_store_winword() - Store date/time in WinWord format
*
*Purpose:
*       Format the date/time in the supplied WinWord format
*       and store it in the supplied buffer.
*
*       *** For internal use with strftime() only ***
*
*       The WinWord format is converted token by token to
*       strftime conversion specifiers.  _expandtime is then called to
*       do the work.  The WinWord format is expected to be a
*       character string (not wide-chars).
*
*Entry:
*       const char **format = address of pointer to WinWord format
*       const struct tm *tmptr = pointer to time/date structure
*       char **out = address of pointer to output string
*       size_t *count = address of char count (space in output area)
*       struct __lc_time_data *lc_time = pointer to locale-specific info
*
*Exit:
*       none
*
*Exceptions:
*
*******************************************************************************/

static void __cdecl _store_winword (
        const char *format,
        const struct tm *tmptr,
        char **out,
        size_t *count,
        struct __lc_time_data *lc_time
        )
{
        char specifier;
        const char *p;
        int repeat;
        char *ampmstr;

        while (*format && *count != 0)
        {
                specifier = 0;          /* indicate no match */
                __no_lead_zeros = 0;    /* default is print leading zeros */

                /* count the number of repetitions of this character */
                for (repeat=0, p=format; *p++ == *format; repeat++);
                /* leave p pointing to the beginning of the next token */
                p--;

                /* switch on ascii format character and determine specifier */
                switch (*format)
                {
                        case 'M':
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'm'; break;
                                        case 3: specifier = 'b'; break;
                                        case 4: specifier = 'B'; break;
                                } break;
                        case 'd':
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'd'; break;
                                        case 3: specifier = 'a'; break;
                                        case 4: specifier = 'A'; break;
                                } break;
                        case 'y':
                                switch (repeat)
                                {
                                        case 2: specifier = 'y'; break;
                                        case 4: specifier = 'Y'; break;
                                } break;
                        case 'h':
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'I'; break;
                                } break;
                        case 'H':
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'H'; break;
                                } break;
                        case 'm':
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'M'; break;
                                } break;
                        case 's': /* for compatibility; not strictly WinWord */
                                switch (repeat)
                                {
                                        case 1: __no_lead_zeros = 1; /* fall thru */
                                        case 2: specifier = 'S'; break;
                                } break;
                        case 'A':
                        case 'a':
                                if (!_stricmp(format, "am/pm"))
                                        p = format + 5;
                                else if (!_stricmp(format, "a/p"))
                                        p = format + 3;
                                specifier = 'p';
                                break;
                        case 't': /* t or tt time marker suffix */
                                if ( tmptr->tm_hour <= 11 )
                                        ampmstr = lc_time->ampm[0];
                                else
                                        ampmstr = lc_time->ampm[1];

                                while ( (repeat > 0) && (*count > 0) )
                                {
                                        if ( isleadbyte((int)*ampmstr) &&
                                             (*count > 1) )
                                        {
                                                *(*out)++ = *ampmstr++;
                                                (*count)--;
                                        }
                                        *(*out)++ = *ampmstr++;
                                        (*count)--;
                                        repeat--;
                                }
                                format = p;
                                continue;

                        case '\'': /* literal string */
                                if (repeat & 1) /* odd number */
                                {
                                        format += repeat;
                                        while (*format && *count != 0)
                                        {
                                                if (*format == '\'')
                                                {
                                                        format++;
                                                        break;
                                                }
                                                if ( isleadbyte((int)*format) &&
                                                     (*count > 1) )
                                                {
                                                        *(*out)++ = *format++;
                                                        (*count)--;
                                                }
                                                *(*out)++ = *format++;
                                                (*count)--;
                                        }
                                }
                                else { /* even number */
                                        format += repeat;
                                }
                                continue;

                        default: /* non-control char, print it */
                                break;
                } /* switch */

                /* expand specifier, or copy literal if specifier not found */
                if (specifier)
                {
                        _expandtime(specifier, tmptr, out, count, lc_time);
                        format = p; /* bump format up to the next token */
                } else {
                        if (isleadbyte((int)*format))
                        {
                                *(*out)++ = *format++;
                                (*count)--;
                        }
                        *(*out)++ = *format++;
                        (*count)--;
                }
        } /* while */
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
717成人午夜免费福利电影| www.激情成人| 欧美一区二区久久| 青草国产精品久久久久久| 欧美久久一区二区| 卡一卡二国产精品| 久久美女高清视频| 不卡一区在线观看| 一级中文字幕一区二区| 欧美日韩国产首页在线观看| 丝袜美腿亚洲综合| 精品国产区一区| 国产精品99久久久久久有的能看| 国产精品久久久久影院色老大| 99re这里只有精品视频首页| 亚洲大片精品永久免费| 精品久久五月天| 99在线精品一区二区三区| 亚洲sss视频在线视频| 日韩欧美一区二区在线视频| 国产精品一卡二卡| 亚洲午夜久久久久久久久电影院| 日韩午夜在线观看| 成人精品免费看| 亚洲一二三专区| 亚洲精品一线二线三线| 99re这里都是精品| 蜜臀av性久久久久av蜜臀妖精| 国产欧美精品国产国产专区| 在线免费观看一区| 国产美女娇喘av呻吟久久| 亚洲精品伦理在线| 欧美大度的电影原声| 99久久伊人精品| 另类欧美日韩国产在线| 亚洲天堂a在线| 日韩欧美中文字幕制服| 色香色香欲天天天影视综合网| 美女爽到高潮91| 亚洲伦在线观看| 久久婷婷综合激情| 欧美喷水一区二区| 99久久国产综合色|国产精品| 奇米影视一区二区三区| 国产精品久99| 精品久久久久香蕉网| 欧美三级视频在线观看| 国产999精品久久| 日本欧美久久久久免费播放网| 中文字幕一区二区5566日韩| 日韩三级高清在线| 欧美性生活影院| 93久久精品日日躁夜夜躁欧美| 狂野欧美性猛交blacked| 亚洲一区欧美一区| 亚洲欧洲韩国日本视频| 国产欧美一区二区精品婷婷 | 国产乱国产乱300精品| 亚洲一区二区三区四区不卡| 国产精品国产三级国产| 国产日产亚洲精品系列| 精品久久久久久亚洲综合网 | 一区二区三区成人| 中文字幕亚洲区| 亚洲国产精品传媒在线观看| 亚洲精品在线免费观看视频| 日韩三级电影网址| 制服丝袜av成人在线看| 欧美性色黄大片| 一本久道久久综合中文字幕| 成人午夜私人影院| 成av人片一区二区| aaa欧美色吧激情视频| 99国产精品久久久久久久久久久| 国产91综合一区在线观看| 国产精品18久久久久久久久| 国产尤物一区二区| 国产一区 二区| 国产91在线观看| 成人国产亚洲欧美成人综合网| 国产不卡视频在线播放| 国产99久久久国产精品潘金 | 成人国产精品免费观看动漫| 国产麻豆午夜三级精品| 国产精品一卡二| 99热99精品| 91麻豆国产福利在线观看| 色久综合一二码| 欧美日韩大陆在线| 欧美成人精品福利| 国产日韩在线不卡| 自拍偷拍亚洲激情| 亚洲在线观看免费| 日本 国产 欧美色综合| 国产综合色视频| 成人综合激情网| 91老师国产黑色丝袜在线| 在线影视一区二区三区| 555www色欧美视频| 26uuu欧美| 亚洲欧美日韩在线播放| 亚洲观看高清完整版在线观看| 亚洲 欧美综合在线网络| 久久超碰97人人做人人爱| 国产成人精品一区二区三区网站观看| 成人激情午夜影院| 欧美视频完全免费看| 亚洲精品一区二区三区精华液 | 成人av网站大全| 欧美图片一区二区三区| 欧美不卡视频一区| 亚洲国产精品t66y| 亚洲成人在线网站| 国产不卡视频一区| 欧美日韩视频在线观看一区二区三区 | 精品国产一区二区亚洲人成毛片 | 成人午夜碰碰视频| 欧美性大战久久| 久久精品一区四区| 亚洲第一激情av| 国产成人精品三级| 欧美日本一道本| 国产无人区一区二区三区| 一区二区日韩电影| 国产一区二区成人久久免费影院| 色婷婷国产精品| 久久一区二区三区国产精品| 亚洲精品国产无套在线观| 久久精品国内一区二区三区| 91免费看片在线观看| 精品国产污污免费网站入口| 亚洲一级二级三级| www.欧美日韩| 欧美精品一区视频| 三级亚洲高清视频| 92国产精品观看| 久久久一区二区三区捆绑**| 无码av中文一区二区三区桃花岛| 成人免费三级在线| 日韩一区二区免费高清| 一区二区三区在线免费播放| 国产成人精品aa毛片| 日韩一区二区在线观看视频播放 | 亚洲国产婷婷综合在线精品| 国产一区二区不卡| 日韩一区和二区| 亚洲国产美女搞黄色| av在线播放不卡| 亚洲国产激情av| 国产精品乡下勾搭老头1| 日韩精品一区在线| 污片在线观看一区二区| 色88888久久久久久影院按摩| 中文成人综合网| 国产米奇在线777精品观看| 欧美大片在线观看一区二区| 肉色丝袜一区二区| 欧美日韩高清在线| 亚洲一卡二卡三卡四卡无卡久久| 91免费视频观看| 中文字幕一区二区三区四区不卡| 国产乱淫av一区二区三区| 日韩女同互慰一区二区| 天堂一区二区在线| 欧美日韩国产小视频| 亚洲18影院在线观看| 欧美日韩成人综合| 天堂精品中文字幕在线| 日韩一二在线观看| 久久99精品久久久久| 日韩免费高清电影| 看电视剧不卡顿的网站| 欧美成人精品3d动漫h| 久久99精品一区二区三区| 精品国产髙清在线看国产毛片 | 一区二区三区国产精华| 91成人国产精品| 一区二区三区不卡视频| 欧美美女一区二区在线观看| 日韩在线一二三区| 欧美变态tickling挠脚心| 国产又黄又大久久| 国产精品毛片久久久久久| 91女人视频在线观看| 亚洲午夜一区二区| 欧美成人性福生活免费看| 国产精品99久久久久久久vr| 国产精品久久久久aaaa| 欧美调教femdomvk| 美国毛片一区二区三区| 久久免费国产精品| 色综合天天天天做夜夜夜夜做| 亚洲国产欧美在线人成| 日韩欧美高清一区| 成人看片黄a免费看在线| 性做久久久久久免费观看| 欧美电视剧在线看免费| gogo大胆日本视频一区| 性做久久久久久免费观看| 久久这里都是精品|