比特域

来源:互联网 发布:杭州 知乎 编辑:程序博客网 时间:2024/04/28 08:43

struct BitField
{
    unsigned rangeAOne     : 11;    // long 1;
    unsigned rangeATwo     : 11;
    unsigned rangeBOne     : 10;
    unsigned rangeAThree   : 11;    // long 2;
    unsigned rangeAFour    : 11;
    unsigned rangeBTwo     : 10;
} ;

合理的分配空间

0000 0000 | 0000 0000 | 0000 0000 | 0000 0000
|  rangeBOne  |    rangeATwo  |   rangeAOne |

struct WastingBitField
{
    unsigned rangeAOne     : 11;    // long 1;
    unsigned rangeATwo     : 11;
    unsigned rangeAThree   : 11;    // long 2;
    unsigned rangeAFour    : 11;
    unsigned rangeBTwo     : 10;
    unsigned rangeBOne     : 10;
} ;
不合理,产生浪费