包围返回值的括号的问题

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

在ANSI C代码中,我经常可以看到括号对单个返回值进行排序。

就像这样:-

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

在这些情况下,为什么在返回值周围使用()?有什么想法吗?我看不出有什么理由。

提问于
用户回答回答于

真的没有什么理由...这只是个老惯例。

为了节省空间,程序员通常会在返回行中而不是在它自己的行上做最后的数学运算,而父级确保主要是为了更容易地看到返回的是一个语句,如下所示:

return (x+i*2);

而不是

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

括号成了一种习惯,而且它仍然有效。

用户回答回答于

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

所属标签

可能回答问题的人

  • HKC

    红客学院 · 创始人 (已认证)

    26 粉丝7 提问5 回答
  • 西风

    renzha.net · 站长 (已认证)

    9 粉丝1 提问4 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问3 回答
  • 螃蟹居

    1 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券