同じデータ型のビットフィールドのサイズが混合型の データ型よりも小さい理由を知りたいのは興味深いです。同じデータ型のビットフィールドのサイズが混合データ型のビットフィールドと比較して小さい理由
struct xyz
{
int x : 1;
int y : 1;
int z : 1;
};
struct abc
{
char x : 1;
int y : 1;
bool z : 1;
};
はsizeof(XYZ)= 4 はsizeof(ABC)= 12
私はVS 2005を使用しています、64ビットのx86機。
ビットマシン/コンパイラレベルの回答は素晴らしいでしょう。
ただし、ビットフィールドには実際に位置合わせの要件はありません。 –
いいえ、コンパイラはそれらをパックする義務はありません。 – greyfade
ISO14882:2003、§9.6、パラグラフ1を参照してください。 – greyfade