C++ 结构后的公共是什么意思?

C++ 结构后的公共是什么意思?,c++,operating-system,C++,Operating System,为什么在结构名后面有一个public,还有\uuuuu属性\uuuuuuu((packed)),为什么在parandise中有packed??? 这是一个表,用于HPET(高精度事件计时器)。C++中的 < P>,冒号>代码>: >可选的>代码>公共< /代码> />代码>私下< /COD> >代码>保护< /COD>标识符和类型名是指定继承的语法。 在您的代码中,hpet类继承了description\u table\u header类 参见公共、私有和受保护继承的区别。C++中的 < P>

为什么在结构名后面有一个public,还有
\uuuuu属性\uuuuuuu((packed))
,为什么在parandise中有packed???

这是一个表,用于HPET(高精度事件计时器)。C++中的

< P>,冒号>代码>:<代码> >可选的>代码>公共< /代码> />代码>私下< /COD> >代码>保护< /COD>标识符和类型名是指定继承的语法。 在您的代码中,
hpet
类继承了
description\u table\u header


参见公共、私有和受保护继承的区别。C++中的

< P> >冒号>代码>:<可选>代码>公共< /代码> />代码>私下< //> > />代码>保护< /COD>标识符,类型名是指定继承的语法。 在您的代码中,
hpet
类继承了
description\u table\u header


参见讨论公共、私有和受保护继承的差异。

< P>代码是C++,而不是C。这是一个相当重要的细节

这里的
public
是继承的访问说明符(结构继承自
description\u table\u header
)。这将涵盖在所有优秀的C++教科书中。关于SO的一个相关问题是:。实际上不需要为
struct
指定
public
,因为对于struct,这是默认设置


\uu属性(packed))
是特定于编译器的扩展,用于指定
结构的布局。在这种情况下, Stult被打包,以便在结构中没有填充。

< P>代码是C++,而不是C。这是一个相当重要的细节

这里的
public
是继承的访问说明符(结构继承自
description\u table\u header
)。这将涵盖在所有优秀的C++教科书中。关于SO的一个相关问题是:。实际上不需要为
struct
指定
public
,因为对于struct,这是默认设置


\uu属性(packed))
是特定于编译器的扩展,用于指定
结构的布局。在这种情况下, Stult被打包,从而在结构中没有填充。

我认为它是代码> C++ +代码>这是C++中的结构继承。代码>打包<代码>结构对齐。我认为是代码> C++ +代码>?这是C++中的结构继承。代码>打包的
结构对齐。这是C++(它是一种优秀的低级代码语言)。Subt是公共继承的(结构可以做的——与类一样)。这是C++(它是一种优秀的低级代码语言)。
    struct hpet : public description_table_header
{
    uint8_t hardware_rev_id;
    uint8_t comparator_count:5;
    uint8_t counter_size:1;
    uint8_t reserved:1;
    uint8_t legacy_replacement:1;
    pci_vendor_t pci_vendor_id;
    address_structure address;
    uint8_t hpet_number;
    uint16_t minimum_tick;
    uint8_t page_protection;
} __attribute__((packed));