在C中改变函数内部的函数param值

时间:2013-09-24 11:12:04

标签: c function param

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

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

OR

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

感谢。

3 个答案:

答案 0 :(得分:2)

写入参数很好,可能甚至可以更好地提高性能,具体取决于编译器的聪明程度。

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

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

分配给sum然后返回它没有意义,可以合并这两个语句。

答案 1 :(得分:0)

OR

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

答案 2 :(得分:0)

由于第二个没有提高可读性,我会选择第一个。

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