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

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

?? strings.c

?? Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
?? C
字號:
/* Copyright David Abrahams 2004. Distributed under the Boost *//* Software License, Version 1.0. (See accompanying *//* file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */#include "jam.h"#include "strings.h"#include <stdlib.h>#include <string.h>#include <assert.h>#include <stdio.h>#ifndef NDEBUG# define JAM_STRING_MAGIC ((char)0xcf)# define JAM_STRING_MAGIC_SIZE 4static void assert_invariants( string* self ){    int i;    if ( self->value == 0 )    {        assert( self->size == 0 );        assert( self->capacity == 0 );        assert( self->opt[0] == 0 );        return;    }        assert( self->size < self->capacity );    assert( ( self->capacity <= sizeof(self->opt) ) == ( self->value == self->opt ) );    assert( strlen( self->value ) == self->size );    for (i = 0; i < 4; ++i)    {        assert( self->magic[i] == JAM_STRING_MAGIC );        assert( self->value[self->capacity + i] == JAM_STRING_MAGIC );    }}#else# define JAM_STRING_MAGIC_SIZE 0# define assert_invariants(x) do {} while (0)#endifvoid string_new( string* s ){    s->value = s->opt;    s->size = 0;    s->capacity = sizeof(s->opt);    s->opt[0] = 0;#ifndef NDEBUG    memset(s->magic, JAM_STRING_MAGIC, sizeof(s->magic));#endif    assert_invariants( s );}void string_free( string* s ){    assert_invariants( s );    if ( s->value != s->opt )        BJAM_FREE( s->value );    string_new( s );}static void string_reserve_internal( string* self, size_t capacity ){    if ( self->value == self->opt )    {        self->value = (char*)BJAM_MALLOC_ATOMIC( capacity + JAM_STRING_MAGIC_SIZE );        self->value[0] = 0;        strncat( self->value, self->opt, sizeof(self->opt) );        assert( strlen( self->value ) <= self->capacity ); /* This is a regression test */    }    else    {        self->value = (char*)BJAM_REALLOC( self->value, capacity + JAM_STRING_MAGIC_SIZE );    }#ifndef NDEBUG    memcpy( self->value + capacity, self->magic, JAM_STRING_MAGIC_SIZE );#endif    self->capacity = capacity;}void string_reserve( string* self, size_t capacity ){    assert_invariants( self );    if ( capacity <= self->capacity )        return;    string_reserve_internal( self, capacity );    assert_invariants( self );}static void extend_full( string* self, char const* start, char const* finish ){    size_t new_size = self->capacity + ( finish - start );    size_t new_capacity = self->capacity;    size_t old_size = self->capacity;    while ( new_capacity < new_size + 1)        new_capacity <<= 1;    string_reserve_internal( self, new_capacity );    memcpy( self->value + old_size, start, new_size - old_size );    self->value[new_size] = 0;    self->size = new_size;}void string_append( string* self, char const* rhs ){    char* p = self->value + self->size;    char* end = self->value + self->capacity;    assert_invariants( self );        while ( *rhs && p != end)        *p++ = *rhs++;        if ( p != end )    {        *p = 0;        self->size = p - self->value;    }    else    {        extend_full( self, rhs, rhs + strlen(rhs) );    }    assert_invariants( self );}void string_append_range( string* self, char const* start, char const* finish ){    char* p = self->value + self->size;    char* end = self->value + self->capacity;    assert_invariants( self );        while ( p != end && start != finish )        *p++ = *start++;        if ( p != end )    {        *p = 0;        self->size = p - self->value;    }    else    {        extend_full( self, start, finish );    }    assert_invariants( self );}void string_copy( string* s, char const* rhs ){    string_new( s );    string_append( s, rhs );}void string_truncate( string* self, size_t n ){    assert_invariants( self );    assert( n <= self->capacity );    self->value[self->size = n] = 0;    assert_invariants( self );}void string_pop_back( string* self ){    string_truncate( self, self->size - 1 );}void string_push_back( string* self, char x ){    string_append_range( self, &x, &x + 1 );}char string_back( string* self ){    assert_invariants( self );    return self->value[self->size - 1];}#ifndef NDEBUGvoid string_unit_test(){    string s[1];    int i;    char buffer[sizeof(s->opt) * 2 + 2];    int limit = sizeof(buffer) > 254 ? 254 : sizeof(buffer);    string_new(s);        for (i = 0; i < limit; ++i)    {        string_push_back( s, (char)(i + 1) );    };    for (i = 0; i < limit; ++i)    {        assert( i < s->size );        assert( s->value[i] == (char)(i + 1));    }    string_free(s);    }#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91丨porny丨蝌蚪视频| 久久er99热精品一区二区| 久久精品视频免费观看| 欧美一区二区播放| 日韩美女在线视频 | 久久av老司机精品网站导航| 视频一区国产视频| 七七婷婷婷婷精品国产| 日韩精品三区四区| 免费人成在线不卡| 久久www免费人成看片高清| 久久国产人妖系列| 国产成人av自拍| av在线不卡电影| 欧美亚州韩日在线看免费版国语版| 91国偷自产一区二区三区观看| 色哟哟国产精品免费观看| 一本色道久久加勒比精品| 色婷婷久久久久swag精品| 欧美性受xxxx| 精品免费一区二区三区| 日本一区二区三区四区在线视频| 国产欧美精品一区aⅴ影院 | 91免费国产在线| 日本精品一区二区三区高清| 欧美少妇一区二区| 精品国产乱码久久久久久1区2区 | 亚洲国产视频一区| 日韩精品午夜视频| 成人黄色小视频在线观看| 一本到不卡精品视频在线观看| 欧美性生活影院| 精品国精品自拍自在线| 亚洲三级在线免费观看| 日本视频一区二区| 国产精品一二三四区| 色av一区二区| 26uuu亚洲综合色欧美| 亚洲精品免费电影| 色综合久久中文综合久久97| 欧美精品一二三| 中文字幕第一区综合| 日日摸夜夜添夜夜添亚洲女人| 国产在线视视频有精品| 欧美在线视频你懂得| 欧美成人女星排行榜| 亚洲综合一二区| 成人av高清在线| 精品91自产拍在线观看一区| 一区二区三区在线视频免费 | 欧美精品一区二区高清在线观看 | 久久综合五月天婷婷伊人| 成人免费在线观看入口| 麻豆高清免费国产一区| 色婷婷综合在线| 国产精品伦理一区二区| 美女久久久精品| 欧美日韩另类国产亚洲欧美一级| 国产精品婷婷午夜在线观看| 国内精品久久久久影院薰衣草| 欧美图片一区二区三区| 18涩涩午夜精品.www| 国产精品白丝jk白祙喷水网站 | 久久久美女毛片| 五月天一区二区三区| 色妹子一区二区| 一色屋精品亚洲香蕉网站| 国产69精品久久久久毛片| 精品免费国产二区三区| 麻豆国产欧美日韩综合精品二区| 欧美日韩在线播放三区| 一区二区三区四区蜜桃| 色综合欧美在线视频区| 亚洲欧洲国产专区| 成人app软件下载大全免费| 久久久777精品电影网影网| 久久99国产精品麻豆| 欧美一区二区播放| 老司机午夜精品| 26uuu国产在线精品一区二区| 裸体健美xxxx欧美裸体表演| 日韩网站在线看片你懂的| 蜜桃传媒麻豆第一区在线观看| 欧美久久久久久久久久| 日日夜夜精品免费视频| 日韩一级高清毛片| 国产精品资源网| 国产精品狼人久久影院观看方式| 国产mv日韩mv欧美| 国产精品超碰97尤物18| 日本高清不卡视频| 亚洲18色成人| 精品国产91久久久久久久妲己 | 亚洲视频资源在线| 91蜜桃网址入口| 午夜精品久久久久久久 | 国产激情一区二区三区| 日本一区二区三区电影| 91在线观看成人| 亚洲sss视频在线视频| 欧美成人性战久久| 成人综合在线观看| 亚洲最大色网站| 一区二区在线观看不卡| 日本福利一区二区| 久久精品72免费观看| 亚洲国产精品激情在线观看| 91黄色免费版| 狠狠色狠狠色合久久伊人| 国产精品盗摄一区二区三区| 欧美日韩一区精品| 国产精品综合一区二区| 一区二区免费视频| 久久久久久亚洲综合| 在线观看中文字幕不卡| 国产一区二区免费在线| 亚洲精品高清视频在线观看| 欧美va在线播放| 91农村精品一区二区在线| 韩国毛片一区二区三区| 悠悠色在线精品| 欧美极品美女视频| 7777精品伊人久久久大香线蕉经典版下载 | 久久不见久久见中文字幕免费| 自拍偷拍亚洲综合| 欧美xxxxx牲另类人与| 欧美中文字幕久久| 国产成a人无v码亚洲福利| 亚洲成国产人片在线观看| 国产日韩亚洲欧美综合| 日韩欧美你懂的| 欧美日韩久久久一区| 91亚洲精华国产精华精华液| 国产主播一区二区| 免费国产亚洲视频| 午夜精品久久久久久久99水蜜桃 | 久久久久国产精品厨房| 制服丝袜成人动漫| 欧美精品高清视频| 色综合久久久久久久久久久| 懂色av噜噜一区二区三区av| 精品一区二区免费看| 美女视频黄 久久| 七七婷婷婷婷精品国产| 日韩福利电影在线观看| 视频在线观看91| 亚洲成人激情自拍| 亚洲一区在线视频| 亚洲精品免费看| 一区二区三区高清| 一区二区免费在线播放| 一区二区激情小说| 亚洲主播在线播放| 亚洲午夜在线视频| 亚洲一区二区精品视频| 亚洲午夜精品一区二区三区他趣| 成人欧美一区二区三区在线播放| 国产欧美日韩另类视频免费观看| 久久婷婷国产综合国色天香| 久久综合九色综合97婷婷女人| 日韩欧美国产1| 26uuu另类欧美| 国产精品免费视频一区| 国产精品久久久久久亚洲伦| 综合色中文字幕| 一区二区三区丝袜| 婷婷夜色潮精品综合在线| 秋霞影院一区二区| 国产夫妻精品视频| 91亚洲国产成人精品一区二三| 91久久精品日日躁夜夜躁欧美| 欧美视频自拍偷拍| 日韩欧美黄色影院| 国产精品三级久久久久三级| 亚洲欧美日韩国产另类专区| 亚洲一区二区精品久久av| 美女在线观看视频一区二区| 国产一区二区福利| 色综合久久99| 91精品国产丝袜白色高跟鞋| 欧美电影免费观看高清完整版| 欧美极品美女视频| 亚洲综合激情网| 国产在线一区观看| 91成人免费在线| 精品88久久久久88久久久| 亚洲欧美综合色| 青青草国产精品97视觉盛宴| 成人动漫一区二区| 91麻豆精品国产91久久久使用方法 | 国产精品成人免费在线| 亚洲成a人片综合在线| 国产一区 二区 三区一级| 色婷婷狠狠综合| 久久综合久久鬼色| 亚洲国产欧美日韩另类综合| 国产福利一区二区三区视频在线| 欧美色老头old∨ideo| 欧美激情一区二区三区全黄| 日韩中文字幕不卡|