【发布时间】:2014-07-21 12:42:52
【问题描述】:
为了可读性,我喜欢在 C/C++ 中“完整地”编写布尔条件,例如:
if (foo == true) 代替 if (foo) 和 if (foo == false) 代替 if (!foo)。
这会影响性能吗?
【问题讨论】:
-
运行程序的性能?还是可怜的维护程序员试图通过无关的噪音来读取逻辑?
-
为了可读性而使用的样式会损害可读性。
-
即使是用英语,明确地说明比较通常会更清楚:“如果___是真的,那么我要去___。”可读性是旁观者的眼睛,通常是宗教辩论的主题。 OP 并没有寻求帮助来决定什么更具可读性,只是他/她喜欢的风格是否有任何性能成本。
-
问题是:你有一个
bool类型的值。如果你坚持将bool类型的值与true或false进行比较,那么你的问题是foo == true也是bool类型的值,所以你实际上需要(foo == true) == true。除了那也是bool,等等,无穷无尽。 -
@Caleb 这就是为什么上面是 cmets,而不是答案。 (当我看到类似
if ( foo == bool )的内容时,它会读到类似“作者不理解布尔类型或一般类型系统的概念,所以要小心他写的任何东西。)
标签: c++ c performance readability