【发布时间】:2014-07-18 08:24:33
【问题描述】:
两者之间有什么区别:
if (!bool_function()) {
void_function();
}
和
bool_function() || void_function();
除了可读性?
即使第二个函数返回 void,我可以使用第二种形式吗?
如果bool_function 返回true,是否保证在所有基于C 的编程语言(C++、C#、Java)中不会执行void_function?
编辑: 我问的原因是因为在我的 C 编译器上什至没有给出任何警告,并且它按预期工作。我正在使用 IAR Embedded Workbench IDE。
【问题讨论】:
-
这不是有效的 Java,我怀疑它甚至是有效的 C
-
这不会在 C# 中编译。
-
bool_function() || void_function();不知道C是否支持,但java不支持。布尔表达式的所有组件都必须是布尔值,因此不允许使用 void。 -
嗯...在 Java 中,您也可以将
||运算符应用于布尔值,这意味着bool_function()||void_function()不会编译,因为void_funcion()不会返回boolean。 -
这是
gcc所说的:error: void value not ignored as it ought to be bool_function() || void_function();