【问题标题】:What does this construction means? [duplicate]这种结构是什么意思? [复制]
【发布时间】:2013-11-22 14:12:58
【问题描述】:
class Test 
{

    struct
    {
      unsigned has_some_value1: 1;
      unsigned has_some_value2: 1;
    } info;
};

unsigned has_some_value1: 1; 是什么意思?

以下陈述应为真:sizoef(type) == bit1 + ... + bitn ?

【问题讨论】:

标签: c++


【解决方案1】:

这些被称为“位域”。 has_some_value1 占用一位。 has_some_value2 也占用一位——可能是内存中的 next 物理位,也可能不占用(取决于您的编译器如何配置以处理位字段对齐)。

【讨论】:

  • sizeof() 显然,在将位宽相加并除以 8 之后,至少会将大小四舍五入到下一个整数 bytes。但它由于架构和编译器特定的结构对齐问题,也可能更多。
【解决方案2】:

名为“info”的未命名结构的非静态实例中的位域,它本身是“Test”的成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多