当按值传递 - void func(Object o);调用 - func(a);通过值传递的结构与通过引用传递的结构相比,减慢了计算机的工作时间?对或错?
当通过引用 - void func(Object & o); 调用 - func(a);
当按值传递 - void func(Object o);调用 - func(a);通过值传递的结构与通过引用传递的结构相比,减慢了计算机的工作时间?对或错?
当通过引用 - void func(Object & o); 调用 - func(a);
更慢还是更快?
也许是错误的问题。
你参考的例子是const限定符是记录了一个地方,有经验的程序员可能会使用
void foo (const T& t);
(尽管“过早优化”它可能暗示。)
引用仅输入到函数foo()。
所以我想我应该问你澄清,如果“const T &”是你的意思。
建议 - 不必担心性能,花时间让代码正常工作,并写信给读者进行沟通。然后,当时间和精力和兴趣(和你的主管)允许时,测试......证明任何希望获得性能提升的东西。
Bt仍然会减慢编译器的工作速度? – 2015-02-24 08:28:46
@Nannypatel - 传递'const T&'vs'T'会影响编译器吗?不知道如何衡量。你多久编一次?传递一个4字节(与编译器有关的)'const T&'比复制一个n-K字节的结构要好吗?大概。但用户会看到差异吗?完成一次后,可能不会。当完成10^6次,也许,取决于所有其他的东西正在进行。 I.E.这取决于...我知道。我知道。你想从应该知道的人那里得到一个简单的答案。通过练习,你会形成你自己的观点。 – 2015-02-24 23:16:24
取决于结构的大小。
传递引用意味着复制指针(64位机器中的8个字节)。如果你想传递的结构大于一个指针,那么它会比较慢,因为它需要复制更多的数据。
结构可以传递指针在C++? – 2015-02-24 04:24:57
结构(对象或结构)在内存中有一个地址。如果您选择通过引用传递该参数,则会将该地址复制到该函数。 – Jcao02 2015-02-24 04:31:52
哪个更好?按价值或参考结构调用? – 2015-02-24 04:33:57
“慢下来”有点多...这个结构有多大? – Thilo 2015-02-24 04:13:07
可能任何编程手册的第一个问题都试图教导指针。 – 2015-02-24 04:13:27
相关:http://stackoverflow.com/questions/3314010/should-small-simple-structs-be-passed-by-const-reference?rq=1 – Thilo 2015-02-24 04:15:10