可以假设0是假的,1是真的吗?

时间:2015-11-17 12:17:38

标签: c++ conditional

我见过基于int变量而不是bool评估条件的代码。

int condition
cin >> condition;
if (!condition)
    //do something 

我知道C ++支持0是假的,1是真的,但这是安全的代码吗?是否所有C ++编译器都支持它作为标准?

考虑到您可能会切换到另一种语言并发现不支持这种代码,这也是一种不好的做法吗?

我的意思是,这是不是很好的做法?

1 个答案:

答案 0 :(得分:3)

是的,做出这个假设是安全的。该标准定义了各种基元到bool的隐式转换,所有数字类型基本上都表明0转换为false,任何非零值都转换为true