【发布时间】:2010-12-27 01:30:25
【问题描述】:
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)) { ... }
【问题讨论】:
-
呃,你为什么不看看编译器的输出呢?无论如何,在 99.9999% 的情况下,这都无关紧要。
-
@lpthnc - 因为你提到了代码审查,所以你正在与一个团队合作。我建议使用其他人使用的相同样式。即使现在您发现该样式的可读性较差,您在阅读其他团队成员的代码时也需要处理它。此外,一旦你使用有规律的样式,它就会变得非常可读。
-
如果你想知道你的编译器做了什么,你需要研究编译器的输出,而不是问SO。 SO 仅用于从其他程序员那里获取信息。
-
只要用C++编译器编译,然后在windbg下运行,看看生成的汇编代码。
-
呜呜呜,为什么你的常数在左边? :P 你不是说“如果这是假的”,而是说“如果这是假的”。
标签: c++ optimization compiler-construction coding-style code-readability