Visual C ++ 2008中的Struct成员对齐方式

时间:2009-05-18 17:52:29

标签: visual-c++ struct memory-alignment

Visual C ++让您在项目的属性页面中选择结构成员alignemnt。问题是,此配置正用于项目中的所有srtructs。

有没有办法(特定于VC ++,我猜)可以单独设置某个struct的成员对齐?

3 个答案:

答案 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:特定于编译器,以及糟糕的代码实践; ^)