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

C 这个结构代码是如何工作的,c,struct,structure,unsigned,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:

大家好,有人能帮我写这段代码吗

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是什么意思?

这样你就可以声明你想要为这个变量保留多少位。它通常用于对齐数据结构。包含一个很好的解释。

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


谢谢你的帮助,这些链接也很有用。