使用const int &var
形式参数代替const int var
有什么好处吗?使用(const int&var)形式参数代替(const int var)会有什么收获吗?
我知道大结构中的优势,但对于POD,指针的大小通常与实际数据大小相同。所以我想答案是“没有优势”。但我认为也许通过价值语义复制一次到堆栈,再次复制到堆栈的一个区域以便于参考(比如说一个寄存器)。或者可能不是。事实上,它可以INFACT更好通过值传递,
http://www.learncpp.com/cpp-tutorial/73-passing-arguments-by-reference/
由于引用通常被C++实现使用指针,和解除引用一个指针是不是直接访问它比较慢,访问由参考传递的值是比访问按值传递的值慢。
但是,这回到了我所说的关于复制堆栈的内容。我只是偏执狂吧?这种行为是为编译器担心而不是我。
我可以单步组装我知道,但是,好吧,谷歌搜索速度更快,它变成了空白。
最后,它可能是微不足道的值得优化。 – Dawson
@Toolbox,我不知道,手机上的复杂应用程序似乎很受欢迎。 – John
这种复杂性正是我认为有几十个其他优化,你会得到更多的性能提高。 – Dawson