Ale*_*ler 29

布尔值true是一个布尔值.只要您想表达某个二进制条件,就可以使用它.

整数文字1是一个数字.无论何时计算某些东西,都要使用它.

不要将整数用于布尔值,反之亦然.它们是不同的.

考虑一个变量int isEnabled.当然,我可以猜测0并且1可能是此变量的唯一预期值.但语言方面,没有什么能阻止我分配4247891.但是,使用布尔值会将有效值限制为truefalse.这没有留下任何猜测的余地.

(C++ int和bools有点可兑换,但通常不赞成)

  • 就内存而言,布尔值也要小得多. (3认同)
  • @Justin Satyr与std :: vector <int>相比,std :: vector <bool>要小得多,在其他情况下你需要考虑对齐. (3认同)
  • 只是添加对Justin Satyr所说的内容的引用:整数通常是4字节(32位),而布尔值是1字节(8位).这些都依赖于平台,但对于所有主要平台,我知道这是正确的.(是的,在完美的世界中,布尔应该是1位,但是在内存中只能引用一位是不可能的) (2认同)

Ree*_*sey 12

true如果您的类型在逻辑上是布尔值,我建议使用.这在意图方面会更加明确,这使您的代码更易于维护.