[導讀]今天在使用結構體時發(fā)現結構用 sizeof 求出現的大小 與 實際的大小不一致。例如:以下結構typedef?struct
{
BYTE?ucCommStartFlag;
WORD?wMessa
今天在使用結構體時發(fā)現結構用 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。
查看內存,發(fā)現 ucCommStartFlag 后面的一個字節(jié)未使用,應該屬于字節(jié)對齊的問題:WORD 類型變量不能從奇數地址開始。





