c++ 布尔冒号初始化

uqcuzwp8  于 2023-01-22  发布在  其他
关注(0)|答案(1)|浏览(166)

在阅读一些C++代码时,我看到了一个类中的这一小行,并被它迷惑了:

bool x:1;

在调试版本中,我注意到'x'被初始化为'false',但是我找不到任何相关文档。有人能告诉我这个语法是做什么的吗?

2ul0zpep

2ul0zpep1#

它是一个位字段。请阅读c教科书中有关位字段内容。
初始化到false是独立于声明的.是否由你的代码保证取决于你的代码(没有给出).
C
标准对于大小为1的整数和枚举位字段给编译器一些余地:在这样的字段中存储值1,你可以得到值-1。令人高兴的是,这仅适用于大小为1的字段,而不适用于类型为bool的字段。

相关问题