大家好,有人可以帮我解决这段代码
struct
{
unsigned BLOCKDATA:16;
unsigned QUALCOUNT:4;
unsigned BLOCKTYPE:2;
unsigned BE:1;
unsigned Z:1;
unsigned SYN:1;
unsigned DOK:1;
unsigned BM:1;
unsigned SYNDROME:5;
}
RDSout;
我知道RDSout是一个结构,而BLOCKDATA和QUALCOUNT等是这个结构的元素,但我不明白BLOCKDATA前面的:16 意味着什么?
答案 0 :(得分:6)
通过这种方式,您可以声明要为该变量保留多少位。它通常用于对齐数据结构。 wikipedia article包含一个很好的解释。
答案 1 :(得分:0)
结构中每个元素后面的数字表示我们为每个元素保留了多少位。当您已经知道要使用的确切位数时,通常会打包位并节省内存。您还可以参考here以使您的概念更加清晰。