C++ 哪个值更适合使用?布尔真还是整数1?

C++ 哪个值更适合使用?布尔真还是整数1?,c++,types,integer,boolean,C++,Types,Integer,Boolean,它到底有没有意义?布尔值真值是一个布尔值。只要您想表示满足某个二进制条件,就可以使用它 整数文本1是一个数字。当你在数东西的时候,用它 不要将整数用于布尔运算,反之亦然。他们是不同的 考虑一个变量int isEnabled。当然,我可以猜测0和1可能是该变量的唯一预期值。但就语言而言,没有什么能阻止我分配4247891。但是,使用布尔值将有效值限制为true和false。这没有任何猜测的余地 (C++int和bool在某种程度上是可转换的,但人们通常不赞成这样做)如果您的类型在逻辑上是boole

它到底有没有意义?

布尔值
真值
是一个布尔值。只要您想表示满足某个二进制条件,就可以使用它

整数文本
1
是一个数字。当你在数东西的时候,用它

不要将整数用于布尔运算,反之亦然。他们是不同的

考虑一个变量
int isEnabled
。当然,我可以猜测
0
1
可能是该变量的唯一预期值。但就语言而言,没有什么能阻止我分配
4247891
。但是,使用布尔值将有效值限制为
true
false
。这没有任何猜测的余地


(C++int和bool在某种程度上是可转换的,但人们通常不赞成这样做)

如果您的类型在逻辑上是boolean,我建议使用
true
。这将在意图方面更加清晰,这将使您的代码更易于维护。

为什么?使用布尔值作为布尔值;计数时使用整数。

布尔值在内存方面也要小得多。请参考Justin Satyr的说法:整数通常为4字节(32位),而布尔值为1字节(8位)。这些都取决于平台,但对于所有主要平台,我知道这是正确的。(是的,在一个完美的世界中,布尔值应该是1位,但是不可能只引用内存中的一位)@Justin Satyr std::vector比std::vector小很多,在其他情况下,你需要考虑对齐。std::vector不是秘密地包含一堆位标志吗。