您能否像在 C# 中一样,在 C++ 中显式设置结构布局/对齐方式?

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++ 中有这样的东西吗?

Cum*_*yah 5

编译器通常通过 #pragma 支持它,但它不包含在 C++ 标准中,因此不可移植。

有关 Microsoft 编译器的示例,请参阅:http : //msdn.microsoft.com/en-us/library/2e70t5y1(VS.80).aspx