typedef struct headStr
{
char magic[6];
char cmdCount;
int infoLen;
unsigned long crcValue;
}*pHeadInfo,headInfo;//(6+1+1(补齐))+4+4
之前分配给结构体的大小为16字节,如果转化成char*,则也是16个字节,但是如果把这16个字节的char,赋值给c++中的string类型,则string中数据长度的字节数,就和你这个结构中被赋的值的大小有关,可能被赋值到string之后,数据长度反而成了10个字节。
typedef struct headStr
{
char magic[6];
char cmdCount;
int infoLen;
char crcValue;
}*pHeadInfo,headInfo;//(6+1+1(补齐))+4+(1+3(补齐))
{
char magic[6];
char cmdCount;
int infoLen;
unsigned long crcValue;
}*pHeadInfo,headInfo;//(6+1+1(补齐))+4+4
之前分配给结构体的大小为16字节,如果转化成char*,则也是16个字节,但是如果把这16个字节的char,赋值给c++中的string类型,则string中数据长度的字节数,就和你这个结构中被赋的值的大小有关,可能被赋值到string之后,数据长度反而成了10个字节。
typedef struct headStr
{
char magic[6];
char cmdCount;
char crcValue;
int infoLen;
}*pHeadInfo,headInfo;//6+1+1+4
系统分配12个字节
typedef struct headStr
{
char magic[6];
char cmdCount;
int infoLen;
char crcValue;
}*pHeadInfo,headInfo;//(6+1+1(补齐))+4+(1+3(补齐))