返回值两边的括号 - 为什么?
我经常看到这样的代码(C,C++,有时是Java):
return (value);
我看不出这些括号有什么好处。所以我的问题是,程序员是否假设是某种以返回值作为参数的函数,或者这些括号是否真的有意义?return
我知道这里已经提出了类似的问题,但这仅与ANSI C有关。我想知道是否有一些特定于C++或Java的方面尚未得到解答。
我经常看到这样的代码(C,C++,有时是Java):
return (value);
我看不出这些括号有什么好处。所以我的问题是,程序员是否假设是某种以返回值作为参数的函数,或者这些括号是否真的有意义?return
我知道这里已经提出了类似的问题,但这仅与ANSI C有关。我想知道是否有一些特定于C++或Java的方面尚未得到解答。
关于 C
括号放在有表达式的地方,并且希望返回值是表达式的值。即使这样,也不需要括号。写这样的东西是完全可以的
return x + y;
程序员确实使它更具可读性。return (x + y);
因此,加上括号是一个意见和实践问题。
有一个神秘的情况,括号很重要。引用这个问题
int var1 = 42;
decltype(auto) func1() { return var1; } // return type is int, same as decltype(var1)
decltype(auto) func1() { return(var1); } // return type is int&, same as decltype((var1))
您可以看到返回值不同,这是由于括号造成的。您可以浏览此答案以详细了解。
编码约定建议使用
return x + y;
要了解更多信息,请阅读此答案。
从技术上讲,没有理由将给出的表达式括起来。这真的是一个品味问题。return
也就是说,如果表达式使用布尔运算符,我通常会用括号括起来。由于这样的运算符通常被视为 or 的一部分,因此在我看来,除了跳转之外,您还想用该值做一些事情。return
while
if
int out_of_range(int x)
{
return ((x < 1) || (x > 10));
}