环境,四字节对齐,32位开发环境,一般是使用Qt时遇到易犯错的地方;
- 结构体mystr之中第一个元素是char 类型数据,第二个是float。将结构体memcpy到一个char mych[]数组中,mych数组大小应该为8字节。反之,若有数组mych2存放的数据需要memcpy到上面说的结构体中,那么数组mych2中数据的存放方式为 {0x01,0x00,0x00,0x00, 0x00,0xF7,0x42,0x33} 解释:第一个存放char型数据,第二三四位因四字节对齐存放0x00,后四位是一个float数据占了四字节。memcpy拷贝的长度也应该是8,而不是5。结构体创建时自动字节补齐所以大小为8。
trpedef struct MYSTR
{
char c1;
float num1;
}mystr;