【发布时间】:2015-07-19 21:15:20
【问题描述】:
我看到这个被使用了,它在一个结构中。只有一次我看到“:”被用于条件句。但在这种情况下,它是 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;
不太清楚在这种情况下“:”运算符的确切含义。和位的位置有关吗?
谢谢。
【问题讨论】:
-
那些是位域。 “:”后面的数字表示该字段占用了多少位。
-
但是,不要从“职位”的角度来考虑它。请注意,确切的表示取决于编译器。例如,您不能依赖大端或小端顺序的位。