4

在阅读一些 C++ 代码时,我在一个类中看到并被这行代码弄糊涂了:

bool x:1;

在调试版本中,我注意到“x”被初始化为“假”,但我找不到任何关于它的文档。谁能告诉我这个语法是做什么的?

4

1 回答 1

10

这是一个位领域。阅读 C++ 教科书中的位域。

的初始化false独立于声明。您的代码是否保证取决于您的代码(未给出)。

c++ 标准为编译器为大小为 1 的整数和枚举位域提供了一些余地:将值存储1在这样的字段中,您可能会得到值-1。幸运的是,这仅适用于大小为 1 的字段,不适用于类型为 的字段bool

于 2012-08-06T15:34:11.780 回答