0
我正在阅读Scott Meyrses C++,现在是关于passing-reference-to-const
的部分。他说,对于用户定义的类型,通过reference-to-const传递它几乎总是很好,与内置类型不同。按值传递基元
我的问题是为什么内置类型应该通过值传递。为什么它更有效率?我认为,他们可以进入登记册,但这是唯一的原因吗?
我正在阅读Scott Meyrses C++,现在是关于passing-reference-to-const
的部分。他说,对于用户定义的类型,通过reference-to-const传递它几乎总是很好,与内置类型不同。按值传递基元
我的问题是为什么内置类型应该通过值传递。为什么它更有效率?我认为,他们可以进入登记册,但这是唯一的原因吗?
当你传递一个引用时,它在后面传递一个指针。这比通过可能非常大的整个结构更有效。
原始类型的大小与指针大小相同(最坏的情况下它们可能是原来的两倍)。有些甚至更小 - 一个char
是1个字节,而指针通常是4或8个字节。所以通过引用而不是传递价值本身并不能获得效率。
通过引用传递或传递指针是一种额外的间接方式。在没有优化的地方,有指针解引用来使用该值,而用于复制指针的内容并不比仅仅复制该值本身小。 –