这个结构代码是如何工作的

时间:2012-08-23 10:15:13

标签: c struct structure unsigned

大家好,有人可以帮我解决这段代码

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 意味着什么?

2 个答案:

答案 0 :(得分:6)

通过这种方式,您可以声明要为该变量保留多少位。它通常用于对齐数据结构。 wikipedia article包含一个很好的解释。

答案 1 :(得分:0)

结构中每个元素后面的数字表示我们为每个元素保留了多少位。当您已经知道要使用的确切位数时,通常会打包位并节省内存。您还可以参考here以使您的概念更加清晰。

More Links

And One more