//数据包头结构,该结构在win32下为4byte
typedef struct _head
{
char type; //这里占有一个字节
unsigned short len; //这里占有两个字节
}hdr,*phdr;上面的结构不是占用了三个字节吗?但是资料上却说是占用三个字节,请指点,多谢。
typedef struct _head
{
char type; //这里占有一个字节
unsigned short len; //这里占有两个字节
}hdr,*phdr;上面的结构不是占用了三个字节吗?但是资料上却说是占用三个字节,请指点,多谢。
http://dev.csdn.net/article/48/48195.shtm
typedef struct _head
{
char type; //这里占有一个字节
unsigned short len; //这里占有两个字节
}hdr,*phdr; type占一个字节,放在[0]的位置上,
然后len为2个字节,[1]所在的位置不能整除2,
那就从第2个字节开始放len,就是[2, 3]
最后占用的内存就是[0, 1,2,3]总共4字节...
如果不想让对齐,用 #pragma pack(1)
{
char type; //这里占有一个字节
unsigned short len; //这里占有两个字节
}hdr,*phdr;
内存对齐了4个字节,补充一下
#pragma pack(1)不是任何地方都可用的,