编译器警告(等级 4)C4820

“member_name”构造后添加了“bytes”字节填充

元素的类型和顺序导致编译器在结构的末尾添加填充。 有关结构中的填充的详细信息,请参阅 align

默认情况下,此警告处于关闭状态。 请参阅 默认情况下处于关闭状态的编译器警告 了解详细信息。

下面的示例生成 C4820:

// C4820.cpp
// compile with: /W4 /c
#pragma warning(default : 4820)

// Delete the following 4 lines to resolve.
__declspec(align(2)) struct MyStruct {
   char a;
   int i;   // C4820
};

// OK
#pragma pack(1)
__declspec(align(1)) struct MyStruct2 {
   char a;
   int i;
};