0
所以我了解位域,而当我偶然发现this link,只见有什么用初始化空白位域
unsigned char :0; // start a new byte
我不知道为什么会被使用,因为它浪费内存。它有实际用途吗?它将在哪里被实际使用?
编辑:所以我确实读了this,但除了交叉编译器兼容性之外,还有其他实际用途吗?
所以我了解位域,而当我偶然发现this link,只见有什么用初始化空白位域
unsigned char :0; // start a new byte
我不知道为什么会被使用,因为它浪费内存。它有实际用途吗?它将在哪里被实际使用?
编辑:所以我确实读了this,但除了交叉编译器兼容性之外,还有其他实际用途吗?
标准实际上解释了这一:
6.7.2.1 P12:
位字段声明与没有声明,但只有一个冒号和一个宽度,表示 无名位field.126 )作为一种特殊情况,宽度为0的位域结构成员表示没有其他位域将被打包到其中放置了前一个位域(如果有的话)的单元中(如果有的话)。
126:未命名的位域结构成员可用于填充以符合外部施加的布局。
很难说没有上下文,但也许原因是为了获得序列化目的的特定内存布局(altough这不是克服好的序列唯一的问题...) – deviantfan 2014-11-24 22:17:34
而且还[这太问题](http://stackoverflow.com/questions/13802728/what-is-zero-width-bit-field) – quantdev 2014-11-24 22:18:30