我正在阅读 Scott Meyrses C++,现在阅读有关 passing-reference-to-const
的部分。他说,对于用户定义的类型,通过对常量的引用传递它几乎总是好的,这与内置类型不同。
我的问题是为什么内置类型应该按值传递。为什么效率更高?我认为,可以将它们放入寄存器中,但这是唯一的原因吗?
最佳答案
当您传递一个引用时,它实际上是在传递一个指针。这比传递可能非常大的整个结构更有效。
原始类型的大小都与指针大致相同(最坏的情况下它们可能是指针的两倍大)。有些甚至更小——char
是 1 个字节,而指针通常是 4 或 8 个字节。因此,通过引用传递而不是传递值本身不会提高效率。
关于c++ - 按值传递基元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139576/