这个奇怪的语法在c ++ Struct中是什么?

时间:2015-04-09 05:01:24

标签: c++

struct mybitfields
{
    unsigned short a : 4;
    unsigned short b : 5;
    unsigned short c : 7;
} test;

为什么使用:代替=。我真的很困惑。

1 个答案:

答案 0 :(得分:2)

这是位字段,用于指定结构成员占用精确给定的位数。

在您的示例中,test.a为4位,test.b为5位,test.c为7位。

这对于类型转换非常有用。您可以将short变量转换为test并获得完全需要的位。

阅读this了解详情。