C中的位域没有变量名

ted*_*ted 1 c bit-fields

C中未命名的位域有什么用?

示例:

typedef struct fun {
unsigned int                 :8;
unsigned int foo1            :1;
unsigned int foo2            :1;
unsigned int foo3            :1;
unsigned int foo4            :1;
unsigned int foo5            :1;
}dig;
Run Code Online (Sandbox Code Playgroud)

有什么用途:

   unsigned int                 :8;
Run Code Online (Sandbox Code Playgroud)

P.P*_*.P. 5

它被称为未命名的位字段.C11标准陈述了它和可能的用法:

6.7.2.1结构和联合规范

没有声明符的bit-fi eld声明,但只有冒号和宽度,表示未命名的bit-fi字段.106)作为一种特殊情况,宽度为0的位字段结构成员表示不会将其他位字段打包到放置前一个bitfeld(如果有的话)的单元中.

106)未命名的位字段结构成员可用于填充以符合外部施加的布局.