我有一个函数,我需要向其传递一个值以仅用于只读目的。
例如:
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/