编辑:这个问题被标记为重复,我可以理解为什么,但我搜索和搜索,我找不到另一个问题,所以希望这可以用作其他问题答案的漏斗。另一个问题还没有最好的答案。
我对C ++没有多少经验,但我总是想知道以下内容,找不到任何可以解释哪个方面更好的方法:
第一种方式:编写函数时,最好这样做:
int value = Calculation(x, y);
int Calculation(int x, int y)
{
int value = x + y;
// Some More calculation involving value
return value;
}
第二道。或者做得更好:
int value = 0;
Calculation(value, x, y);
void Calculation(int& value, int x, int y)
{
value = x + y;
// Some More calculation involving value
}
根据我在其他编程语言中的经验,编写带参数并返回结果的函数总是很好的做法,但我总是觉得这样做,我总是在函数内声明一个额外的变量(返回变量)和每次调用该函数都需要垃圾收集器的额外工作。我可能错了,但这就是我目前的想法。
第二种方式,我只需要声明一次值,但我通过引用传递它,这意味着每次在函数中使用变量时我都会为编译器提供额外的工作,因为它必须每次指向它。
所以在摘要中,我的猜测是第一种方式是工作较少,但在内存中添加了一个额外的变量。第二种方式是减少内存工作,但每次在函数中使用它时都需要额外的工作来查找变量。
最后我的问题,我应该始终坚持第一种方式吗?
非常感谢!