【发布时间】:2012-03-15 13:53:58
【问题描述】:
使用 C++,我如何决定是通过值还是通过引用/指针传递参数? (告诉我 32 位和 64 位的答案)让我们拿 A. 2 个 32 位值作为指向 32 位值的指针是更多还是更少?
在我看来,我总是应该按价值传递。 C 我认为我应该按值传递,但有人告诉我(但我没有看到证据)处理器不处理值而不是它们的位大小,所以它需要更多的工作。因此,如果我将它们传递给传递,那么按值传递是否会做更多的工作,因此 byref 更快?最后我扔了一个枚举。我认为枚举应该始终按值计算
注意:当我说 ref 时,我的意思是 const 引用或指针(不能忘记 const...)
struct A { int a, b; }
struct B { int a; }
struct C { char a, b; }
enum D { a,b,c }
void fn(T a);
如果我多次推送参数并且代码不使用尾调用,现在告诉我答案? (假设这些值直到 4 次左右调用深度才使用)
【问题讨论】:
标签: c++ performance struct pass-by-reference pass-by-value