gpt4 book ai didi

c++ - 在下面函数的返回值中添加 const 限定符有何重要性?

转载 作者:行者123 更新时间:2023-11-30 05:11:12 27 4
gpt4 key购买 nike

我有以下代码库

#include <cstdio>

int foo(const int &y) {
static int z = y;
z = z + 1;
return z;
}


int main(int argv, char *args[]) {
int x = 6;
int r = foo(x);
printf("The value returned is %d\n", r);
printf("The vlaue of x is %d\n", x);
r = foo(x);
printf("The value returned is %d\n", r);
printf("The vlaue of x is %d\n", x);

}

现在,上面的代码打印相同的输出

The value returned is 7
The value of x is 6
The value returned is 8
The value of x is 6

不管函数是否定义如下:

int foo(const int &y) {

或者像这样:

const int & foo(const int &y) {

所以我的问题是副作用是什么,或者为什么使用/不使用 const int & 返回类型而不是 int 返回类型很重要

最佳答案

int 的情况下,复制是廉价的,这是最优选的方式:

int foo(const int &y)

当对如此小的数据类型使用 const int& 时,间接会使代码对缓存不那么友好,并且可能比复制版本效率低。

关于c++ - 在下面函数的返回值中添加 const 限定符有何重要性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45193795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com