WinCE 下最简单的字节对齐问题
扫描二维码
随时随地手机看文章
今天在使用结构体时发现结构用 sizeof 求出现的大小 与 实际的大小不一致。
例如:以下结构
typedef struct { BYTE ucCommStartFlag; WORD wMessageID; WORD wMessageAttribute; BYTE ucMobileNumberBCD[6]; WORD wSequenceID; WORD wPackagesNumber; WORD wPackageIndex; BYTE ucCRC BYTE ucCommEndFlag; }RegisterTerminate_T;
sizeof(RegisterTerminate_T) 竟然等于20,而不是 19。
查看内存,发现 ucCommStartFlag 后面的一个字节未使用,应该属于字节对齐的问题:WORD 类型变量不能从奇数地址开始。