括号包围C中的返回值

问题描述 投票:67回答:11

经常在ANSI C代码中,我可以看到括号将单个返回值包围起来。

喜欢这个:-

int foo(int x) {
  if (x)
    return (-1);
  else
    return (0);
}

在这种情况下,为什么在返回值周围使用()?有任何想法吗?我看不出原因。

c syntax coding-style
11个回答
56
投票

确实没有理由...这只是旧约定。

为了节省空间,程序员通常会在返回行中而不是在返回行中进行最终的数学运算,并且确保大多数都位于括号内,以便更轻松地看到返回的是单个语句,如下所示:] >

return (x+i*2);

代替

int y = x+i*2;
return y;

括号成为一种习惯,它被卡住了。


-4
投票

返回语句中的括号指示编译器您打算将此值返回堆栈而不是内存中。


-5
投票

在return语句中使用括号表明对C/C++语法的掌握不足。就这么简单。但这并不像把所有东西都放在花括号中一样糟糕:


47
投票

实用但不太可能的动机是,如果在值周围加上括号,则可以将return定义为宏,然后插入一些日志记录代码来监视所有返回值。


23
投票

我的个人风格是在表达式复杂的情况下使用括号;例如,


14
投票

In the original C specification, parentheses were required around the return value.虽然现代C编译器和ANSI C标准不需要它们,但是括号的存在并不影响返回值,并且程序员有时出于习惯与风格上的一致性,仍然出于习惯,不熟悉标准而将它们包括在内需要它们的约定,或者可能是为了向后兼容。


13
投票

有几个原因:


8
投票

当您返回示例中的-1时,我认为它在圆括号中更具可读性,因为减号更明显:


4
投票

也许这是习惯,毕竟,带给我们Unix和C语言的人们来自Multics项目。 Multics是用PL / I编写的,并且在PL / I中括号是必需的。


2
投票

我已经与至少一位认为return was


2
投票

[通常在使用括号的情况下,我认为这只是为了提高可读性(例如,Ruby支持不带括号的方法调用,但用括号将参数括起来,但最近的书籍和文章建议不要这样做)。

© www.soinside.com 2019 - 2024. All rights reserved.