我在我的项目中使用数据结构,并且在特定结构的上下文中,我对结构填充有疑问。首先看下面给出的结构。我使用 Visual Studio 2008 编译器。
typedef struct tagDATA_PACK
{
DWORD dDataLength;
BYTE bFlags;
BYTE bAttrib;
BYTE bOffset;
}DATA_PACK;
问题1:上述结构的尺寸是多少?它显示 8 个字节。它是正确的。但,
考虑下面给出的修改结构?
typedef struct tagDATA_PACK
{
DWORD dDataLength;
BYTE bFlags;
}DATA_PACK;
这里的大小与上面的 8byte 结构相同。我的疑问是,编译器会在哪里添加额外的 3 个字节?它是在 BYTE bFlags 之后还是之前?
非常感谢您的所有回答。