C ++函数参数:使用引用还是指针(然后解引用)?
给了我一些代码,其中一些参数是指针,然后指针被解引用来提供值。 我担心指针取消引用会花费几个周期,但是在查看以前的一篇StackOverflow文章之后:取消引用指针的代价有多高?可能没关系。
这里有些例子:
bool MyFunc1(int * val1, int * val2)
{
*val1 = 5;
*val2 = 10;
return true;
}
bool MyFunc2(int &val1, int &val2)
{
val1 = 5;
val2 = 10;
return true;
}
我个人比较喜欢传递引用作为风格的问题,但是比其他版本更好(在流程周期方面)?
我的经验法则是如果参数可以是NULL,也就是在上述情况下是可选的,并且如果参数不应该为NULL,则通过指针传递。
从性能角度来看,这可能没有关系。 其他人已经回答了。
话虽如此,我还没有发现这种情况下,在这种情况下,增加的指令会产生显着的差异。 我意识到,对于一个被称为数十亿次的函数,它可能会有所作为。 通常,您不应该为这种“优化”调整编程风格。
您可以从您的编译器获取汇编代码并进行比较。 至少在GCC中,它们会生成相同的代码。
链接地址: http://www.djcxy.com/p/20725.html上一篇: C++ function parameters: use a reference or a pointer (and then dereference)?