通过引用c++传递基本数据类型的速度优势

speed advantage passing fundamental data types by reference c++

本文关键字:数据类型 速度 引用 c++      更新时间:2023-10-16

在c++中通过引用传递基本数据类型(int, float, double, bool)是否有任何速度优势?

No。

AFAIK……引用的工作方式是编译器将发送传递的参数的内存地址,而在另一边,你有一个任何类型的变量,与发送的变量具有相同的内存地址。所以它基本上是相同的变量,你只是在不同的作用域修改它。

发送大对象更快的原因是,这意味着你只需要发送对象的内存地址(或发送指向该对象的指针),这比复制整个(大)对象要小得多。但是,指针的大小通常与基本数据类型相同,甚至更大,因此传递它不会节省任何速度。

不,可能是相反的(对于幼稚的实现)。非朴素型实现将简单地忽略(大概是const)引用,朴素型实现(如果存在)将需要额外的解引用操作