在阅读一些C ++代码时,我看到并且被一个类中的这个小行弄糊涂了:
bool x:1;
在调试版本中,我注意到'x'被初始化为'false',但我找不到任何关于它的文档。谁能告诉我这种语法有什么用呢?
答案 0 :(得分:9)
这是位字段。阅读c ++教科书中的位字段。
false
的初始化与声明无关。是否由您的代码保证取决于您的代码(未给出)。
c ++标准为编译器提供了大小为1的整数和枚举位域的余地:在这样的字段中存储值1
,您可以得到值-1
。幸运的是,这仅适用于大小为1的字段,并且不适用于bool
类型的字段。