Gar*_*hby 5 c++ struct alignment
在 C# 中,您有很好的对齐属性,例如:
[StructLayout(LayoutKind.Explicit)]
public struct Message
{
[FieldOffset(0)]
public int a;
[FieldOffset(4)]
public short b;
[FieldOffset(6)]
public int c;
[FieldOffset(22)] //Leave some empty space just for the heck of it.
public DateTime dt;
}
Run Code Online (Sandbox Code Playgroud)
这使您可以很好地控制如何在内存中布置结构。标准 C++ 中有这样的东西吗?
编译器通常通过 #pragma 支持它,但它不包含在 C++ 标准中,因此不可移植。
有关 Microsoft 编译器的示例,请参阅:http : //msdn.microsoft.com/en-us/library/2e70t5y1(VS.80).aspx