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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cplusstr.cpp

?? vxworks的完整的源代碼
?? CPP
字號(hào):
/* cplusStr.cpp - simple string class for C++ demangler *//* Copyright 1993 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01e,17oct00,sn   backed out __cplusStr_o removal01d,22jul99,mrs  Rewrite in C++.01d,12may99,jku  removed __cplusStr_o01c,03jun93,srh  doc cleanup01b,23apr93,srh  implemented new force-link/initialization scheme01a,31jan93,srh  written.*//*DESCRIPTIONThis module provides a very simple, ring-buffer based string class.It was written, in the absence of a more general (and more useful)string class to support the demangler. It values speed over mosteverything else. It contains no user-callable routines.NOMANUAL*//* globals */char __cplusStr_o;/* includes */#include "vxWorks.h"#include "cplusLib.h"#include "string.h"/********************************************************************************* RBStringIterator_T :: RBStringIterator_T - initialize an RBStringIterator** RETURNS:* nothing** NOMANUAL*/RBStringIterator_T :: RBStringIterator_T (const RBString_T &anRBString)    {    theRBString = &anRBString;    nc = anRBString.head;    }/********************************************************************************* RBStringIterator_T :: nextChar - advance iterator by one character** RETURNS:* next character, or EOS if end-of-string** NOMANUAL*/char RBStringIterator_T :: nextChar ()    {    char returnValue = *nc;    // If nc already points to the terminating EOS, return it (possible    // for a second time).    // Otherwise increment nc and see if it is still within bounds.    // If not, wrap nc around to the beginning of the string and return    // the first character (of the array).    // Otherwise, dereference the pointer and return the character.    if (*nc)	{	nc += 1;	if (nc == &theRBString->data [ sizeof (theRBString->data) ])	    {	    nc = theRBString->data;	    }	}        return returnValue;    }/********************************************************************************* RBString_T :: RBString_T - create a zero-length RBString** RETURNS:* nothing** NOMANUAL*/RBString_T :: RBString_T ()    {    // String is initially empty. Start head and tail in the middle of    // the array to minimize wraparound occasions. I do not know if this    // affects performance one way or the other, but whenever the string    // is contiguous in memory, i.e. not wrapped, the contents can be    // more easily viewed when debugging client code.    // head = tail = data + sizeof (data) / 2;        head = tail = data;    data [0] = 0;    nChars = 0;    }/****************************************************************************** * * RBString :: clear - reinitialize * * RETURNS: N/A * * NOMANUAL */void RBString_T :: clear ()    {    head = tail = data;    data [0] = 0;    nChars = 0;    }/********************************************************************************* RBString_T :: RBString_T - clone an RBString** RETURNS:* nothing** NOMANUAL*/RBString_T :: RBString_T (RBString_T & anRBString)    {    nChars = anRBString.nChars;    memcpy (data, anRBString.data, sizeof (data));    head = data + (anRBString.head - anRBString.data);    tail = data + (anRBString.tail - anRBString.data);    }/********************************************************************************* RBString_T :: RBString_T - make an RBString out of a C string** RETURNS:* nothing** NOMANUAL*/RBString_T :: RBString_T (const char * aCString)    {    // For most strings, which are relatively short, strlen followed    // by memcpy should be faster than strncpy.    nChars = min ((sizeof (data) - 1), strlen (aCString));    memcpy (data, aCString, nChars);    data [ nChars ] = 0;    head = data;    tail = & data [ nChars ];    }/********************************************************************************* RBString_T & RBString_T :: operator =** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: operator = (RBString_T & anRBString)    {    if (data != anRBString.data)	{	nChars = anRBString.nChars;	memcpy (data, anRBString.data, sizeof (data));	head = data + (anRBString.head - anRBString.data);	tail = data + (anRBString.tail - anRBString.data);	}    return *this;    }/********************************************************************************* RBString_T :: operator ==** RETURNS:* TRUE if operands contain the same characters, otherwise FALSE** NOMANUAL*/BOOL RBString_T :: operator == (RBString_T & anRBString) const    {    if (nChars != anRBString.nChars)	{	return FALSE;	}    else	{	int i;	RBStringIterator_T s1 (*this);	RBStringIterator_T s2 (anRBString);		for (i = 0; i < nChars; i++)	    {	    if (s1.nextChar () != s2.nextChar ())		{		break;		}	    }		return (i == nChars) ? TRUE : FALSE;	}    }/********************************************************************************* RBString_T :: extractCString - extract demangled internal representation,*                                copy to C string** RETURNS:* 0, if demangling failed, otherwise pChar** NOMANUAL*/char * RBString_T :: extractCString    (     char	* pChar,			 // buffer in which to save     						 // extracted string     int	  length			 // size of buffer    )    {    RBStringIterator_T si (*this);    int i;    int limit;    char *s;        for (i = 0, s = pChar, limit = min (length - 1, nChars);	 i < limit;	 i++, s++)	{	*s = si.nextChar ();	}    *s = 0;    return pChar;    }/********************************************************************************* RBString_T :: operator != ** RETURNS:* TRUE if operands do not contain the same characters, otherwise FALSE** NOMANUAL*/inline BOOL RBString_T :: operator != (RBString_T & anRBString ) const    {    return ! (*this == anRBString);    }/********************************************************************************* RBString_T :: appendChar - append a character** RETURNS:* EOS if character cannot be added, otherwise the appended character** NOMANUAL*/inline char RBString_T :: appendChar (char c)    {    if ((nChars + 2) >= sizeof (data))	{	c = 0;	}    if (c != 0)	{	*tail = c;	tail = (++tail == &data [ sizeof (data) ]) ? data : tail;	*tail = 0;	nChars++;	}    return c;    }/********************************************************************************* RBString_T :: prependChar - prepend a character** RETURNS:* EOS if character cannot be added, otherwise the prepended character** NOMANUAL*/inline char RBString_T :: prependChar (char c)    {    if ((nChars + 2) >= sizeof (data))	{	c = 0;	}    else	{	head = (--head < data)  ?  &data [ sizeof (data) - 1 ] : head;	*head = c;	nChars++;	}    return c;    }/********************************************************************************* RBString_T :: append  - append contents of an RBString to this RBString** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: append (RBString_T & anRBString)    {    RBStringIterator_T sourceString (anRBString);    char c;        if (anRBString.nChars > 0)	{	while ((c = sourceString.nextChar ()))	    {	    appendChar (c);	    }	}    return *this;    }/********************************************************************************* RBString_T :: append  - append contents of a C string to this RBString** This function will append up to INT_MAX characters, or through the end of* the C string. The operation terminates at the earlier of these conditions.** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: append (const char *aCString, int length)    {    for ( ; (length > 0) && (*aCString != 0); aCString++, length--)	{	appendChar (*aCString);	}    return *this;    }/********************************************************************************* RBString_T :: append - append a character to this RBString** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: append (char c)    {    appendChar (c);    return *this;    }/********************************************************************************* RBString_T :: prepend - prepend a character to this RBString** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: prepend (char c)    {    prependChar (c);    return *this;    }/********************************************************************************* RBString_T :: prepend - prepend contents of an RBString to this RBString** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: prepend (RBString_T & anRBString)    {    RBString_T tmp (anRBString);    tmp.append (*this);    *this = tmp;    return *this;    }/********************************************************************************* RBString_T :: prepend - prepend contents of a C string to this RBString** RETURNS:* Reference to updated RBString** NOMANUAL*/RBString_T & RBString_T :: prepend (const char *aCString, int length)    {    RBString_T tmp;    tmp.append (aCString, length);    tmp.append (*this);    *this = tmp;    return *this;    }

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲婷婷综合久久一本伊一区| 久久综合色婷婷| 国产乱码精品一区二区三| 亚洲人成在线播放网站岛国| 欧美一卡2卡3卡4卡| 91视频xxxx| 国产剧情av麻豆香蕉精品| 一区二区三区在线播| 久久久久久免费毛片精品| 欧美日韩成人一区| 91在线视频免费91| 国产精品一色哟哟哟| 日韩精品欧美成人高清一区二区| 国产精品人妖ts系列视频| 日韩视频免费观看高清在线视频| 色综合久久中文字幕| 国产主播一区二区| 日本系列欧美系列| 亚洲成av人片一区二区| 17c精品麻豆一区二区免费| 精品福利av导航| 91精品国产免费久久综合| 91久久精品国产91性色tv| 风间由美一区二区三区在线观看| 久久精品国产秦先生| 亚洲第一福利一区| 亚洲激情中文1区| 亚洲视频一二三区| 国产精品天干天干在线综合| 精品剧情v国产在线观看在线| 欧美日韩国产在线观看| 色婷婷激情一区二区三区| av在线播放成人| av中文字幕不卡| 99久久精品免费观看| 成人免费视频播放| 成人免费看的视频| 成人自拍视频在线| 北条麻妃国产九九精品视频| 东方aⅴ免费观看久久av| 国产激情一区二区三区四区| 精品一区二区久久| 国产精品一区二区你懂的| 韩国v欧美v日本v亚洲v| 国内精品久久久久影院薰衣草| 久草在线在线精品观看| 久久99国产精品麻豆| 精品一区二区综合| 国产精品一区二区久久不卡 | 美女一区二区在线观看| 麻豆视频一区二区| 精品一区二区三区在线观看 | 亚洲第一在线综合网站| 亚洲一区二区三区国产| 亚洲成人综合视频| 日韩高清在线电影| 久久99久久精品| 国产成人免费视频网站高清观看视频 | 91免费小视频| 在线观看国产精品网站| 欧美精品 日韩| 日韩精品专区在线影院重磅| 欧美精品一区二区不卡| 国产三级一区二区三区| 成人免费一区二区三区在线观看| 亚洲精品视频免费观看| 丝袜美腿一区二区三区| 久久黄色级2电影| 国产98色在线|日韩| 94-欧美-setu| 91精品国产高清一区二区三区| 精品日韩一区二区| 欧美激情在线一区二区| 亚洲一本大道在线| 久久国产精品露脸对白| 99久久免费视频.com| 欧美日韩精品一区二区天天拍小说| 91精品麻豆日日躁夜夜躁| 国产日韩欧美a| 亚洲成人在线网站| 国产一区二区三区免费在线观看| av亚洲精华国产精华精华| 欧美日韩一本到| 久久精品亚洲国产奇米99| 一区二区在线看| 麻豆精品一区二区三区| 99久久777色| 日韩一区二区三区三四区视频在线观看| 久久综合久久久久88| 亚洲精选在线视频| 国产乱码精品一区二区三区五月婷| 99精品偷自拍| 精品国产精品一区二区夜夜嗨| 日韩一区中文字幕| 蜜桃精品视频在线| 色呦呦日韩精品| 久久午夜羞羞影院免费观看| 亚洲国产一二三| 懂色av一区二区在线播放| 欧美精品三级在线观看| 亚洲色图丝袜美腿| 国产精品一区二区无线| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品中文字幕日韩精品| 欧美三级中文字幕在线观看| 国产精品久久久久婷婷| 蜜桃av一区二区| 精品视频免费看| 成人欧美一区二区三区| 国产乱码精品一区二区三区av | 高清beeg欧美| 精品国产一区二区精华| 亚洲一区在线观看网站| 99国产精品视频免费观看| www久久精品| 日韩成人av影视| 欧美色视频在线观看| 亚洲欧美在线aaa| 韩国视频一区二区| 日韩手机在线导航| 日本一不卡视频| 欧美福利电影网| 亚洲地区一二三色| 99精品国产99久久久久久白柏| 国产欧美精品一区aⅴ影院 | 色婷婷精品大在线视频| 亚洲欧洲av色图| 91小视频在线免费看| 国产精品久久久久久久久搜平片| 国产一区二区三区av电影| 日韩欧美123| 韩国三级电影一区二区| 精品久久久久久久人人人人传媒| 另类小说视频一区二区| 日韩免费电影网站| 久久国产夜色精品鲁鲁99| 日韩欧美国产不卡| 精品亚洲欧美一区| 久久日韩精品一区二区五区| 国产美女精品在线| 国产欧美日本一区二区三区| 成人做爰69片免费看网站| 中文幕一区二区三区久久蜜桃| 国产91精品一区二区麻豆网站 | 欧洲精品在线观看| 亚洲综合免费观看高清在线观看| 91国内精品野花午夜精品| 亚洲卡通欧美制服中文| 欧美三级电影在线看| 五月综合激情婷婷六月色窝| 欧美一区二区三区精品| 欧美aaa在线| 久久久久久毛片| 不卡的电影网站| 亚洲一区在线免费观看| 91精品国产欧美一区二区成人| 精品在线观看视频| 日本一区二区动态图| 91啪亚洲精品| 视频一区视频二区中文| 精品99一区二区三区| 国产麻豆成人精品| 国产精品久久久久久一区二区三区 | 久久久噜噜噜久噜久久综合| 成人涩涩免费视频| 亚洲一区二区三区四区在线免费观看| 欧美在线观看你懂的| 蜜桃久久久久久| 国产日产精品1区| 91久久精品一区二区二区| 男男视频亚洲欧美| 国产精品免费人成网站| 欧美日韩中文字幕精品| 黄一区二区三区| 日韩码欧中文字| 538在线一区二区精品国产| 国产成人免费9x9x人网站视频| 亚洲精选视频免费看| 日韩欧美专区在线| 成人av影院在线| 日韩av中文在线观看| 中文字幕+乱码+中文字幕一区| 欧美吞精做爰啪啪高潮| 成人app下载| 日韩国产在线一| 国产精品私人自拍| 欧美一级一级性生活免费录像| 成人黄页在线观看| 午夜精品久久久久久久久| 欧美国产成人在线| 欧美精品亚洲一区二区在线播放| 国产精品一二三四| 日一区二区三区| 亚洲天堂成人网| 精品久久久三级丝袜| 在线观看视频一区二区 | 黄色资源网久久资源365| 一区二区三区四区在线播放 | 亚洲男人电影天堂| 欧美r级在线观看|