c++ - 按值传递基元

标签 c++ types built-in-types

我正在阅读 Scott Meyrses C++,现在阅读有关 passing-reference-to-const 的部分。他说,对于用户定义的类型,通过对常量的引用传递它几乎总是好的,这与内置类型不同。

我的问题是为什么内置类型应该按值传递。为什么效率更高?我认为,可以将它们放入寄存器中,但这是唯一的原因吗?

最佳答案

当您传递一个引用时,它实际上是在传递一个指针。这比传递可能非常大的整个结构更有效。

原始类型的大小都与指针大致相同(最坏的情况下它们可能是指针的两倍大)。有些甚至更小——char 是 1 个字节,而指针通常是 4 或 8 个字节。因此,通过引用传递而不是传递值本身不会提高效率。

关于c++ - 按值传递基元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139576/

相关文章:

c++ - C++ 中的 ffmpeg "av_register_all not declared in this scope"

javascript - Typescript 通用类型保护

delphi - 如何声明包含使用记录作为参数的事件的记录

python - 如何防止内置类型被覆盖(分配给)它们的方法?

c++ - '+' 替换为空格 Curl C++

c++ - 存储 std::shared_ptr<Foo> 的 vector ,其中 Foo 是模板类

c++ - 在 Windows 和 Mac 上发送 http 包的最简单方法

php - 我可以在 PHP 中将类型作为参数传递吗?

python - 覆盖内置类,特别是字典类

c++ - 默认构造函数是否初始化内置类型?