C++ C++;11和if(整数)
在C++11写if子句中它仍然有效且良好吗C++ C++;11和if(整数),c++,if-statement,c++11,C++,If Statement,C++11,在C++11写if子句中它仍然有效且良好吗 int i; //some code if (i) //some code 或者更喜欢写 if(i != 0) 将整型POD类型用作条件表达式是有效的 我认为在C++11中没有任何要求使用一种样式而不是另一种样式 因此,选择您喜欢的样式。这是定义良好的行为,因此您可以使用较短的表达式。对于一个没有经验的开发人员来说,这似乎很神秘,但常客在理解它时应该不会有问题 当显式地将i视为一个数字时,使用较长的形式可能有一定的意义,当它有其他逻辑意义时,可以省
int i;
//some code
if (i) //some code
或者更喜欢写
if(i != 0)
将整型POD类型用作条件表达式是有效的 我认为在C++11中没有任何要求使用一种样式而不是另一种样式
因此,选择您喜欢的样式。这是定义良好的行为,因此您可以使用较短的表达式。对于一个没有经验的开发人员来说,这似乎很神秘,但常客在理解它时应该不会有问题
当显式地将
i
视为一个数字时,使用较长的形式可能有一定的意义,当它有其他逻辑意义时,可以省略它。如果你能帮助它,为什么不那么显式和不那么自解释呢?特别是在很少努力的情况下。@GrantThomas:如果整数是指针或包含指针值,If(i)是If(i!=nullptr)的常用缩写,即If“存在”。在这种情况下,我认为速记实际上比长形式更抽象和直观。然而,我确实同意,在其他99%的情况下,这不是理想的形式——最好是更明确一些。最终,C++11在这方面没有任何改变。无论你以前有什么好的理由找到好的实践,都要坚持下去。