私は自分のプロジェクトでデータ構造を使用していますが、特定の構造のコンテキストでは、構造のパディングについて疑問があります。まず、以下の構造を見てください。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;
ここでのサイズは、上記の 8 バイト構造と同じです。ここで私の疑問は、余分な 3 バイトを追加するコンパイラはどこにあるのでしょうか? BYTE bFlags の後ですか、それとも前ですか?
あなたのすべての答えは大歓迎です。