if (false == x) { ...}
相对于:
if (!x) { ... }
和
if (false == f1()) { ...}
相对于:
if (!f1()) { ... }
我认为 if(false == ... 版本更具可读性。您是否同意,或者您可以提出其他技巧?它会一样快吗?谢谢。
这就是我不喜欢 !x 的原因:
if (25 == a->function1(12345, 6789) &&
45 == b->function1(12345, 6789) &&
!c->someOtherFunction(123)) { ... }
以下似乎更好:
if (25 == a->function1(12345, 6789) &&
45 == b->function1(12345, 6789) &&
false == c->someOtherFunction(123)) { ... }
最佳答案
我个人认为 if (!x) { ... }
的形式最易读,但现在它们都会产生相同的代码。
编辑:在您的示例中,我将执行以下操作:
if ( a->function1(12345, 6789) == 25 &&
b->function1(12345, 6789) == 45 &&
!(c->someOtherFunction(123))) { ... }
但这真的只是个人喜好问题。做对你来说最易读的事情。这不会产生任何影响。
关于c++ - VS2008 c++ 编译器会优化以下 if 语句吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911572/