更改C中函数内部的函数参数值

更改C中函数内部的函数参数值,c,function,param,C,Function,Param,愚蠢的问题,是改变函数内函数参数值的好方法还是创建另一个变量来保存它,哪一个更好? 例如: 或 谢谢。写入参数很好,根据编译器的聪明程度,性能可能会更好 另一方面,您的示例也可以写成: s16 functionA(s16 sum) { const u8 addy = 5; /* Assuming this is more complex in reality. */ return sum + addy; } 赋值给sum然后返回它没有意义,这两个语句可以组合起来。或 s16 funct

愚蠢的问题,是改变函数内函数参数值的好方法还是创建另一个变量来保存它,哪一个更好? 例如:


谢谢。

写入参数很好,根据编译器的聪明程度,性能可能会更好

另一方面,您的示例也可以写成:

s16 functionA(s16 sum)
{
  const u8 addy = 5; /* Assuming this is more complex in reality. */
  return sum + addy;
}
赋值给sum然后返回它没有意义,这两个语句可以组合起来。

s16 functionA(s16 origin) {
    u8 addy = 5;
    return origin + addy;
}

因为第二个不能提高可读性,所以我会选择第一个

此外,它在堆栈上节省了2个字节,这在嵌入式环境中可能很好(但编译器很可能会对其进行优化)

s16 functionA(s16 sum)
{
  const u8 addy = 5; /* Assuming this is more complex in reality. */
  return sum + addy;
}
s16 functionA(s16 origin) {
    u8 addy = 5;
    return origin + addy;
}