更优化,存储参数和传递给函数或传递给函数调用参数

时间:2015-04-17 16:25:57

标签: c++

C ++新手,并尝试学习优化技巧,所以希望有人可以为我澄清。

这两个选项之间是否存在真正的区别:

1)存储参数并传递给函数

const char *text = getText(var)
doSomething(text);

2)传递给参数的函数调用

doSomething(getText(var));

我不熟悉计算机科学,以便在进入编译阶段时意识到差异,不幸的是,任何帮助都会很棒!

2 个答案:

答案 0 :(得分:6)

存在技术差异:

doSomething(getText(var));

doSomething的参数是一个右值,而在

doSomething(text);

论证是一个左值。但是,在绝大多数情况下,这是无关紧要的,并且这两行应该在任何合适的编译器上产生等效的机器代码,因此选择您发现的任何更易读的内容。

答案 1 :(得分:4)

假设text仅用于调用doSomething(),编译器肯定会在两种情况下生成相同的代码。

唯一的区别在于你如何看待两者之间的可读性以及调试器在getText()doSomething()之间停留的容易程度,如果有必要的话。