本文整理汇总了C++中Crc32::GetCRC方法的典型用法代码示例。如果您正苦于以下问题:C++ Crc32::GetCRC方法的具体用法?C++ Crc32::GetCRC怎么用?C++ Crc32::GetCRC使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Crc32
的用法示例。
在下文中一共展示了Crc32::GetCRC方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Analyse
/*
@ 功能: 分析字符串
@ 参数: lpszString: 要分析的字符串
vecTokens: 分析结果
@ 返回值:如果分析失败,返回false
@ 注:
*/
bool CLexicalAnalyzer::Analyse( const char * lpszString, TLexTokens & vecTokens )
{
static Crc32 crcGen;
unsigned int crc = crcGen.GetCRC( lpszString );
std::map<unsigned int,TLexTokens>::iterator iter = m_Tokens.find( crc );
if( iter != m_Tokens.end() )
{
vecTokens = iter->second;
return true;
}
vecTokens.clear();
if( NULL == lpszString )
return false;
m_nStringLen = (int)strlen( lpszString );
if( m_nStringLen == 0 )
return true;
char * pszStr = new char[m_nStringLen+1];
memcpy( pszStr, lpszString, m_nStringLen );
pszStr[m_nStringLen] = '\0';
m_nCurCharPos = 0;
m_lpszString = lpszString;
while( true )
{
m_curState = ELexState_Start;
if( ! GetNextToken() )
{
vecTokens.clear();
return false;
}
if( m_curToken.m_eTokenType == EToken_Complete )
break;
vecTokens.push_back( m_curToken );
m_curToken.m_eTokenType = EToken_Invalid;
}
m_Tokens.insert( make_pair( crc, vecTokens ) );
return true;
}