次の構造を定義するとしましょう。
struct MyData {
int a;
char b;
int c;
byte d;
byte e;
}
その構造体のサイズは、データ型だけでなくメモリの配置にも依存することを読んだことを漠然と覚えています。32 ビット CPU では、MyData 構造は 4 バイト + 1 バイト + 4 バイト + 1 バイト + 1 バイト = 11 バイトになります。これが私の質問です。メモリの配置によって構造体のサイズが大きくなります: 4 バイト + 1 バイト (+3 バイトのパディング) + 4 バイト + 1 バイト (+3 バイトのパディング) + 1 バイト (+3 バイトのパディング) = 20 バイト。
これは間違っていますか?何か不足していますか?これは言語固有のものですか?構造体を梱包できますか? もしそうなら、長所と短所は何ですか?
ありがとう!