在C中,使用":"运算符在声明而不是条件

时间:2015-05-08 20:44:29

标签: c syntax operators

我看到这个被使用,它是一个结构。只有我见过":"被用于条件。但在这种情况下,它是uint64_t变量声明的一部分。

typedef struct
{
   uint64_t             attrOne:1;
   uint64_t             attrTwo:1;
   uint64_t             attrThree:1;
   uint64_t             attrFour:1;
   uint64_t             attrFive:1;
   uint64_t             attrSix:1;
   uint64_t             attrSeven:1;
   uint64_t             reserved0:55;
   uint64_t             reserved1;
} StructFlagValues;

不太确定":"在这种情况下,运算符意味着。它与位位置有关吗?

感谢。

2 个答案:

答案 0 :(得分:1)

这意味着前七个字段中的每个字段各占1位,后跟55位长整数。

在此处阅读更多内容:http://www.tutorialspoint.com/cprogramming/c_bit_fields.htm

答案 1 :(得分:1)

:运算符可以引爆bit fields

这意味着每个“字段”都映射到特定字节的某些位。

在您的示例中,这意味着每个字段都是一位长(0或1),编译器应用所有逻辑以确保您只访问特定字段。