在C中,使用“quot;”&引用;声明中的运算符而不是条件运算符

在C中,使用“quot;”&引用;声明中的运算符而不是条件运算符,c,syntax,operators,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 attrFi

我看到这个被使用,它是在一个结构中。我唯一一次看到“:”被用于条件句。但在本例中,它是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;
不太确定“:”运算符在本例中的确切含义。它与钻头位置有关吗


谢谢。

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


阅读更多信息:

操作员可以引爆

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


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

这些是位字段。“:”后面的数字表示字段占用了多少位。但是,不要用“位置”来表示。请注意,确切的表示取决于编译器。例如,你不能依赖于位的大端或小端顺序,我想你的意思是“表示”而不是“引爆”。
不会引起爆炸。