gpt4 book ai didi

c - 以下两种不同的将变量传递到函数的方法之间的区别

转载 作者:行者123 更新时间:2023-11-30 15:19:54 24 4
gpt4 key购买 nike

我有以下结构和下面列出的两种方法。哪种方法更好,为什么?

typedef struct _MY_ST_
{
int a;
int b;
} MY_ST;

方法一:

int func1(MY_ST my_st)
{
int temp;
temp = my_st.a + my_st.b;
return temp;
}

方法2:

int func2(const MY_ST *const my_st)
{
int temp;
temp = my_st->a + my_st->b;
return temp;
}

最佳答案

对于如此小的结构(2 个整数),您不会看到差异。

不过,一般来说,传递指向结构的指针通常是有意义的,因为它避免了不必要的复制。但在这种具体情况下,我想说,只要选择你更舒服并且对你有意义的东西即可。

此外,您不需要 func2() 中的参数为 const MY_ST *const my_stconst MY_ST *my_str 就足够了,因为指针是通过复制传递的,所以被调用者无法修改调用者的指针值。

关于c - 以下两种不同的将变量传递到函数的方法之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30330732/

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