我有下面列出的结构和两种方法。哪种方法更好,为什么?将以下两种不同的传递变量方法区分为函数
typedef struct _MY_ST_
{
int a;
int b;
} MY_ST;
方法1:
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;
}
您在问题中的问题标题和问题是不同的问题。两者都不是“更好”; *任何*的任何优点或缺点完全取决于预期的用途,这是没有指定的。所以澄清你的问题:更好的*为什么*完全?有一个明显的*差异*:一个通过值传递其他通过'const'地址(也是一个值,只是一种不同的类型)。一个允许本地修改结构数据,另一个不允许。 On没有任何机制可以直接引用*调用者的*数据,另一种是等等。 – WhozCraig