这两者有什么区别吗?这将程序分为两个不同的点或什么,请提供它的所有细节。 return是一个声明,所以为什么即使使用return(1)
(看起来像一个函数调用),请详细说明它的实际工作方式&#39 ;?。
答案 0 :(得分:2)
绝对没有区别:这个上下文中的括号并不意味着函数调用,它们是用于强制执行特定评估顺序的常规括号(这里完全没有必要)。
C允许程序员在任何表达式周围放置括号,无论出于何种原因,因此只要括号处于平衡状态,编译器就会以相同的方式解释return
的两个版本:
return (((((1)))));
答案 1 :(得分:2)
在运行时应该没有任何功能或性能差异,因为您要么返回表达式1
,要么返回表达式(1)
,这是相同的。
与以下情况没有什么不同,其中语句应具有相同的运行时间成本:
int a = 42;
int b = (42);
编译时可能存在最小的差异,因为编译器必须在翻译单元中评估更多字符,但如果它显而易见,那么非常会感到惊讶。< / p>
答案 2 :(得分:1)
它们是等价的。它类似于:
1 + 2
相当于:
(1) + (2)
后者是合法的,但括号没用。