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)
它被称为未命名的位字段.C11标准陈述了它和可能的用法:
6.7.2.1结构和联合规范
没有声明符的bit-fi eld声明,但只有冒号和宽度,表示未命名的bit-fi字段.106)作为一种特殊情况,宽度为0的位字段结构成员表示不会将其他位字段打包到放置前一个bitfeld(如果有的话)的单元中.
106)未命名的位字段结构成员可用于填充以符合外部施加的布局.