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)?

下一篇: difference between a pointer and reference parameter?