所以我在学习bitfields,当我偶然发现this link时,我看到了
unsigned char :0; // start a new byte
我想知道为什么要使用它,因为它浪费了记忆力。它有实际用途吗?它实际上会在哪里使用?
编辑:所以我读过this,但除了交叉编译兼容性之外还有其他实际用途吗?
答案 0 :(得分:0)
标准实际上解释了这一点:
6.7.2.1 p12:
没有声明符但只有冒号和宽度的位字段声明表示 未命名的位字段.126)作为一种特殊情况,宽度为0的位字段结构成员表示不会将更多的位字段打包到前一位的单元中 - 放置了字段(如果有的话)。
126:一个未命名的位字段结构成员对于填充符合外部强加的布局非常有用。