这两者之间有任何区别吗:
if (!bool_function()) {
void_function();
}
并且
bool_function() || void_function();
除了易读性之外,还有什么要考虑的吗?
即使第二个函数返回void,我可以使用第二种形式吗? 在所有基于C的编程语言(C ++,C#,Java)中,是否保证如果bool_function返回true,则不会执行void_function?
编辑: 我问的原因是因为我的C编译器甚至没有任何警告,而且它按预期工作。 我正在使用IAR嵌入式Workbench IDE。
bool_function() || void_function();
不知道C语言是否支持,但Java不支持。布尔表达式的所有组成部分都必须是布尔类型,因此不允许使用void。 - BackSlash||
运算符应用于布尔值,这意味着bool_function()||void_function()
不会编译,因为void_funcion()
没有返回boolean
。 - Konstantin Yovkovgcc
给出的错误提示:error: void value not ignored as it ought to be bool_function() || void_function();
- dragosht