c++ - 性能 : Reference vs. 值作为函数参数

标签 c++ c variables parameters reference

我有一个函数,我需要向其传递一个值以仅用于只读目的。

例如:

unsigned short strlen(String str)
{
  short i = 0;
  while(str[i] != '\0')
    i++;
  return i;
}

如您所见,我不想更改我使用的原始值,我只需要读取它的长度。就性能而言,替换参数 String str 会更好吗? ,它通过像 String &str 这样的引用来复制原始变量。 ?

最佳答案

Would it - in terms of performance - be better to replace the parameter String str, which is making a copy of the original variable, by a reference like String &str?

是的,会的。不是创建拷贝(您在这里似乎不需要拷贝),而是绑定(bind)引用。由于您没有修改该对象,因此对 const 的引用会更好:

unsigned short strlen(String const& str)
//                           ^^^^^^

关于c++ - 性能 : Reference vs. 值作为函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16255358/

相关文章:

c++ - 对于 malloc() 失败是否有等效的 set_new_handler()?

java - 在 Java 的局部范围内使用非最终局部变量

c++ - 警告 C4003 和错误 C2589 和 C2059:x = std::numeric_limits<int>::max();

c - 显示指针 char* 的指定索引

C - 通过传递指针改变函数外部变量的值

PHP 空 var == 0?

c# - 根据文本框错误重新定义变量

C++ WinApi : ReadDirectoryChangesW() Receiving Double Notifications

c++ - UWP 将字符串转换为整数

c# - 模块窗口中缺少一些 DLL