C++ 通过引用传递基元类型(如int、bool)是否比通过值传递有任何加速?还是会恶化时间/空间使用?

C++ 通过引用传递基元类型(如int、bool)是否比通过值传递有任何加速?还是会恶化时间/空间使用?,c++,C++,变量在我传递给的函数中以只读方式使用(因此它们是常量) 众所周知,对于复杂对象来说,通过引用传递更好,因为它避免了复制(这会导致调用构造函数的整个层次结构)。但是对于int,它有意义吗?一般来说,引用是作为指针实现的(我听说),因此处理它们需要更多的内存,因为指针的长度通常为8字节,Int的长度为4字节(在典型的64位平台上) 通过引用传递基元类型(如int、bool)是否比通过值传递有任何加速 没有 还是会恶化时间/空间使用 可能是的 因此处理它们需要更多的内存,因为指针的长度通常为8字节,I

变量在我传递给的函数中以只读方式使用(因此它们是常量)

众所周知,对于复杂对象来说,通过引用传递更好,因为它避免了复制(这会导致调用构造函数的整个层次结构)。但是对于int,它有意义吗?一般来说,引用是作为指针实现的(我听说),因此处理它们需要更多的内存,因为指针的长度通常为8字节,Int的长度为4字节(在典型的64位平台上)

通过引用传递基元类型(如int、bool)是否比通过值传递有任何加速

没有

还是会恶化时间/空间使用

可能是的

因此处理它们需要更多的内存,因为指针的长度通常为8字节,Int为4字节

对。虽然准确地说,
int
的大小和指针的大小都不是由标准指定的。在某些系统上,您的陈述可能是准确的

但是,如果函数调用是内联扩展的,这一点都不重要

通过引用传递基元类型(如int、bool)是否比通过值传递有任何加速

没有

还是会恶化时间/空间使用

可能是的

因此处理它们需要更多的内存,因为指针的长度通常为8字节,Int为4字节

对。虽然准确地说,
int
的大小和指针的大小都不是由标准指定的。在某些系统上,您的陈述可能是准确的


但是,如果函数调用是内联展开的,这一点都不重要。

按值传递原语通常更快,并且被认为是良好的做法。编译器必须担心传递引用时的别名等问题,因此优化对内置类型的引用比优化内置类型本身更加困难

按值传递原语通常更快,被认为是良好的实践。编译器必须担心传递引用时的别名等问题,因此优化对内置类型的引用比优化内置类型本身更加困难

相关/重复:可能更多。另一个:相关/重复:可能更多。另一个:其中原语可以表示“编译器在(a)寄存器中传递的任何类型”,其中原语可以表示“编译器在(a)寄存器中传递的任何类型”