ssCAROのブログ

色んなとこで見つけたプログラムのメモ置き場っぽい

構造体のサイズ

struct sample1 {
    WORD wBuf; // 2バイト
    BYTE byBuf; // 1バイト
};

struct sample2 {
    WORD wBuf; // 2バイト
    BYTE byBuf1; // 1バイト
    BYTE byBuf2; // 1バイト
};

上の構造体のサイズを sizeof関数 で調べると・・・

sizeof(sample1) == 4
sizeof(sample2) == 4

に、なります。
VCのバグとかではなく構造体のパディング(詰め物)と言うものらしいです。
奇数サイズの変数は、偶数サイズにするために余分なデータを入れるみたい。

要するに構造体を作るときは、「サイズが偶数になるように作りましょう」と言う事です。
特に通信関係の処理作ってる人には重要かも??