类型应该有多大才能按引用而不是按值传递

How large should a type be to pass by reference rather than by value?

本文关键字:引用 按值传递 类型      更新时间:2023-10-16

考虑到移动语义,是否有一种截止值来定义何时通过引用而不是按值传递更昂贵?

我总是看到示例按值使用基本类型,并通过引用class一些示例。但是如果我有一个小struct或一个小class,是否按值而不是引用传递它们更好?

截止点在哪里?

按引用传递基本上是按指针传递(就效率而言)。

指针/引用传递是移动一个机器原生长度的数据(又名:一个字,或 32 位机器上的 32 位等......

因此,按值传递任何小于或等于本机单词的大小数据将与通过指针/引用传递一样有效。

如果你的数据/对象大于此值,则需要多个周期才能将其中的每个单词复制到堆栈。

当数据大小小于一个字时,按值传递不会提高效率。机器将执行一个副本,该副本花费的时间与执行完整单词所需的时间一样长。