struct STRUCT_CMPP_CONNECT
{
STRUCT_CMPPHEADER stHeader;
char szClientID[6];
char szAuthenticaltorClient[16];
BYTE iVersion;
DWORD dwTimeStamp;
BYTE iLoginMode;
STRUCT_CMPP_CONNECT()
{
ZeroMemory(this,sizeof(STRUCT_CMPP_CONNECT));
}
};
struct STRUCT_WINPACKET
{
DWORD dwSequence_ID;
BYTE bUsed;
time_t tSendingTime;
char Msg[402];
BYTE bTimes;
int MsgLength;
STRUCT_WINPACKET()
{
dwSequence_ID=-1;
bUsed=0;
time(&tSendingTime);
memset(Msg,0,402);
bTimes=0;
}
};
定义一个变量:
STRUCT_CMPP_CONNECT login;int len[6];
len[0]=sizeof(login.stHeader);
len[1]=sizeof(login.iVersion);
len[2]=sizeof(login.dwTimeStamp);
len[3]=sizeof(login.szAuthenticaltorClient);
len[4]=sizeof(login.szClientID);
len[5]=sizeof(login);得到的结果;
len[0]=12;
len[1]=1;
len[2]=4;
len[3]=16;
len[4]=6;
len[5]=40;
为什么len[5]不会等于len[0]+len[1]+len[2]+len[3]+len[4];
{
STRUCT_CMPPHEADER stHeader;
char szClientID[6];
char szAuthenticaltorClient[16];
BYTE iVersion;
DWORD dwTimeStamp;
BYTE iLoginMode;
STRUCT_CMPP_CONNECT()
{
ZeroMemory(this,sizeof(STRUCT_CMPP_CONNECT));
}
};
struct STRUCT_WINPACKET
{
DWORD dwSequence_ID;
BYTE bUsed;
time_t tSendingTime;
char Msg[402];
BYTE bTimes;
int MsgLength;
STRUCT_WINPACKET()
{
dwSequence_ID=-1;
bUsed=0;
time(&tSendingTime);
memset(Msg,0,402);
bTimes=0;
}
};
定义一个变量:
STRUCT_CMPP_CONNECT login;int len[6];
len[0]=sizeof(login.stHeader);
len[1]=sizeof(login.iVersion);
len[2]=sizeof(login.dwTimeStamp);
len[3]=sizeof(login.szAuthenticaltorClient);
len[4]=sizeof(login.szClientID);
len[5]=sizeof(login);得到的结果;
len[0]=12;
len[1]=1;
len[2]=4;
len[3]=16;
len[4]=6;
len[5]=40;
为什么len[5]不会等于len[0]+len[1]+len[2]+len[3]+len[4];
char szClientID[6];
char szAuthenticaltorClient[16];
BYTE iVersion;
这三个成员4位对齐后为24
struct STRUCT_WINPACKET
#pragma pack(pop)