struct CMD_GF_LandlordGameOver
{
std::vector<DT_CHAR> dwkindlist; //三个玩家的输赢情况,0,输,1赢
std::vector<DT_INT32> dwllscorelist; //三个玩家的输赢数(不计台费)
CMD_GF_LandlordGameOver(){}
DT_DWORD Write(char *buf)
{
char *p = buf;
*((DT_DWORD *)p) = dwkindlist.size(); p+=sizeof(DT_DWORD);
for ( DT_DWORD i = 0; i < dwkindlist.size(); i ++ )
{
*((DT_CHAR *)p) = dwkindlist[i]; p+=sizeof(DT_CHAR);
}
*((DT_DWORD *)p) = dwllscorelist.size(); p+=sizeof(DT_DWORD);
for ( DT_DWORD i = 0; i < dwllscorelist.size(); i ++ )
{
*((DT_INT32 *)p) = dwllscorelist[i]; p+=sizeof(DT_INT32);
}
return p - buf;
}
DT_DWORD Read(const char *buf)
{
const char *p = buf;
DT_DWORD dwkindlistSize = *((DT_DWORD *)p); p+=sizeof(DT_DWORD);
for ( DT_DWORD i = 0; i < dwkindlistSize; i ++ )
{
dwkindlist.push_back(*((DT_CHAR *)p)); p+=sizeof(DT_CHAR);
}
DT_DWORD dwllscorelistSize = *((DT_DWORD *)p); p+=sizeof(DT_DWORD);
f
c++可变长度结构体串行化&解析数据
最新推荐文章于 2024-06-27 17:44:25 发布