一个数组指针强制转换成结构体指针得到的结构:
字节对齐:
如果结构体中所有属性所占字节和数组的类型所占字节一样(如果数组类型是16位的,属性也是16位的),那就直接按照属性的顺序,将数组中的数据依次读取出来(是读取,不是复制,因为是指针强制转换)
字节不对齐:
如果结构体属性所占字节数和数组的类型不一样,那样数据就会乱,结构体会按照属性的类型依次读取类型长度的数据,然后数据就会乱。
项目例子:(项目中在收发数据包设计中)
LPCOMM_PKG_HEADER pPkgHeader;//定义的包头结构体指针
pPkgHeader =(LPCOMM_PKG_HEADER)pConn->dataHeadInfo;//dataHeadInfo是char*类型;pconn是连接池指针
项目中,将dataHeadInfo数组长度设置为sizeof(结构体),那么转换的时候,结构体内的变量就能读取到正确的且相对应的值