我目前正在学习如何编写高效的 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)
这和我的问题不是一回事。我的重点不在于哪种方法更好地将参数传递给函数。我的重点是,哪种方法更好地从外部作用域将 出去结果传递给变量。