Visual C ++让您在项目的属性页面中选择结构成员alignemnt。问题是,此配置正用于项目中的所有srtructs。
有没有办法(特定于VC ++,我猜)可以单独设置某个struct的成员对齐?
答案 0 :(得分:6)
答案 1 :(得分:1)
答案 2 :(得分:0)
对于真正特定的结构对齐,你可以摆弄填充字节
因此,在各个字段之间添加一些虚拟字节,直到对齐符合您的需要。
示例:
struct example { unsigned short x; byte dummy1; byte dummy2; byte dummy3; byte dummy4; byte dummy5; byte dummy6; unsigned int y; };
如果没有放置虚拟字节,则int可能位于偏移量4上(距离结构的开头4个字节,而现在它已放置在偏移量8处)
waring:特定于编译器,以及糟糕的代码实践; ^)