我目前正在研究如何编写有效的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)
这和我的问题不同。我的重点不是哪个是将参数传递给函数的更好方法。我关注的是这是更好的方式来传递出一个结果来自外部范围的变量。