我有这个作为我的基本代码。
struct TABLE
{
unsigned char a[2];
unsigned char b[8];
unsigned short c;
};
描述这一点的最好方法是,我可以成功地从文件中读取数据并将数据放入&TABLE中。我已经阅读了这里的数据,一切都很好。
然而,
&TABLE.a = 0x0000FF00
&TABLE.b = 0x0000FF03
&TABLE.c = 0x0000FF0C
&TABLE.c应该是0x0000FF0B.
真正有趣的是如果我把b从[8]改成[7]。Table.c返回0x0000FF0A这里的逻辑是什么?
需要的是
__attributes__ ((packed))
感谢大家和提到对齐的人,这样我就可以继续读下去了。:)