C++17标准在讨论位域时,在第12.2.4节中多次使用"allocation unit"这一术语,但似乎并没有定义这个术语的含义。该标准还声明:“作为特例,具有零宽度的未命名位域指定下一个位域在分配单元边界上对齐。”
因此,针对这些概念,我有两个问题,以下代码作为示例:
1. 标准中的“allocation unit”是什么意思? 2. 未命名位域指定的数据类型的重要性是什么?
在第二个问题中,我的假设是数据类型是指紧随其后的位域应在该数据类型的下一个边界上对齐。
因此,针对这些概念,我有两个问题,以下代码作为示例:
1. 标准中的“allocation unit”是什么意思? 2. 未命名位域指定的数据类型的重要性是什么?
在第二个问题中,我的假设是数据类型是指紧随其后的位域应在该数据类型的下一个边界上对齐。
struct tag
{
char X:3;
unsigned int :0; // start next bit-field on next unsigned int boundary?
char Y:4;
unsigned char :0; // start next bit-field on next unsigned char boundary?
long Z:32;
};