Tam*_*ran 4 c++ struct bit-fields
我正在阅读c ++的ISO标准,我来到了这个位字段声明.以下代码对我来说不太清楚
struct {
char a;
int b:5,
c:11,
:0,
d:8;
struct {int ee:8;}
e;
}
Run Code Online (Sandbox Code Playgroud)
这里指定字段a,d和e.ee具有不同的存储器位置,并且可以使用多个线程独立地修改它们.位域b和c使用相同的存储器位置,因此它们不能同时修改.我不明白为c使用两个位字段的意义c:11,:0,.谁能清楚我对此的看法?谢谢
您询问;
我不明白使用两个位字段的重要性,即c:11,:0,.谁能清楚我对此的看法?
c未使用两个位字段定义.第二个是未命名的位字段.宽度为零的未命名位域具有特殊意义.这就是标准所说的关于未命名的位域的内容.
省略标识符的位字段声明声明了未命名的位字段.未命名的位字段不是成员,无法初始化.[注意:未命名的位字段对于填充符合外部强加的布局非常有用. - 结束注释]作为特殊情况,宽度为零的未命名位域指定分配单元边界处的下一个位字段的对齐.只有在声明未命名的位字段时,constant-expression的值才能等于零.
| 归档时间: |
|
| 查看次数: |
1104 次 |
| 最近记录: |