return 1和return(1)之间有什么区别?

时间:2015-08-12 02:33:40

标签: c function return

这两者有什么区别吗?这将程序分为两个不同的点或什么,请提供它的所有细节。 return是一个声明,所以为什么即使使用return(1)(看起来像一个函数调用),请详细说明它的实际工作方式&#39 ;?。

3 个答案:

答案 0 :(得分:2)

绝对没有区别:这个上下文中的括号并不意味着函数调用,它们是用于强制执行特定评估顺序的常规括号(这里完全没有必要)。

C允许程序员在任何表达式周围放置括号,无论出于何种原因,因此只要括号处于平衡状态,编译器就会以相同的方式解释return的两个版本:

return (((((1)))));

答案 1 :(得分:2)

在运行时应该没有任何功能或性能差异,因为您要么返回表达式1,要么返回表达式(1),这是相同的。

与以下情况没有什么不同,其中语句应具有相同的运行时间成本:

int a = 42;
int b = (42);

编译时可能存在最小的差异,因为编译器必须在翻译单元中评估更多字符,但如果它显而易见,那么非常会感到惊讶。< / p>

答案 2 :(得分:1)

它们是等价的。它类似于:

1 + 2

相当于:

(1) + (2)

后者是合法的,但括号没用。