c++调用函数和性能

C++ calling function and performance

本文关键字:性能 函数 调用 c++      更新时间:2023-10-16

我假设是一个普通的函数调用,

void Example(int i)
{
    i=2;
    cout << i;
}
int main()
{
    int i=1;
    example(i);
    cout << i;
}

实际上是复制变量,因此在Example()中创建另一个实例,使用双内存(如果我是对的)。

那么,在线程和重载环境下,它会对性能产生很大的影响吗?它总是最好使用指针,还是应该通过引用传递更好地告诉调用函数内存在哪里?

通常应该按值传递基本类型,除非需要在函数内部对其进行更改。如果需要修改传递的变量,或者传递大对象,可以通过引用传递:

void Example(SomeBigType& i)
{/*Do something with i*/}

如果需要传递一个大对象,但不需要修改它,则通过const-reference传递:

void Example(const SomeBigType& i)
{/*...*/}

对于这类事情,你应该避免使用指针,而坚持使用引用。