在ANSI代码中,我经常可以看到圆括号对单个返回值进行排序。
就像这样:
int foo(int x) {
if (x)
return (-1);
else
return (0);
}
在这些情况下,为什么要在返回值周围使用()呢?有什么想法吗?我看不出有什么理由这样做。
发布于 2008-10-02 11:56:38
这真的没有什么原因...这只是一个古老的惯例。
为了节省空间,程序员通常会在返回行而不是它自己的行中执行最后的数学运算,并且确保存在的括号主要是为了更容易地看到它是一个返回的语句,如下所示:
return (x+i*2);
而不是
int y = x+i*2;
return y;
插入语成了一种习惯,而且它坚持了下来。
发布于 2008-10-02 19:26:02
一个实际但不太可能的动机是,如果您将值放在括号中,您可以将return定义为宏,然后插入一些日志记录代码来查看所有的返回。
发布于 2008-10-02 12:24:06
我个人的风格是,如果有一个复杂的表达式,就使用括号;例如,
return (a + b);
但如果表达式是一个简单的术语,则不使用它们
return a;
我说不出我为什么那样做;只是我很久以前学到的东西。
顺便说一句,我认为让它看起来像一个函数调用,就像这样:
return(a); // ugh
是令人难以置信的丑陋和错误的。
https://stackoverflow.com/questions/161879
复制相似问题