我目前正在学习如何编写高效的C++代码,就函数调用的问题,我想到了一个问题。比较以下伪代码函数:
not-void function-name () {
do-something
return value;
}
int main () {
...
arg = function-name();
...
}
使用这个在其他情况下完全相同的伪代码函数:
void function-name (not-void& arg) {
do-something
arg = value;
}
int main () {
...
function-name(arg);
...
}
哪个版本更有效率,在哪方面(时间、内存等)?如果这取决于情况,那么在什么时候第一个版本更有效率,在什么时候第二个版本更有效率?编辑:为了更好理解,此问题限制在硬件平台无关差异和大部分软件差异。是否有任何机器无关的性能差异?
编辑:我不明白这怎么是重复的。另一个问题比较传递引用(上述代码)和传递值(下方代码):
not-void function-name (not-void arg)
这并不是我的问题。 我的重点不在于哪种方法更好地传递参数给函数。 我的重点在于从外部范围传递结果到变量的哪种方式更好。