過去の世界からうっかりタイムスリップして来た者です。

#include <stdio.h>

typedef struct {
unsigned long A ;
unsigned short B ;
} HOGE_t ;

main(void){
HOGE_t hoge ;
printf("%d\n", sizeof(hoge) );
}

この実行結果が6ではなく8な理由は、32bitコンパイラだからですよね?
6バイトの構造体を作りたい私は何をしたら良いですか?
(あ、/usr/bin/ccです。ターゲットはx86です。)