1

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

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

或者

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

谢谢。

4

3 回答 3

2

写入参数很好,甚至可能在性能方面更好,具体取决于编译器的聪明程度。

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

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

分配给然后返回它是没有意义的sum,这两个语句可以组合起来。

于 2013-09-24T11:16:46.403 回答
0

或者

s16 functionA(s16 origin) {
    u8 addy = 5;
    return origin + addy;
}
于 2013-09-24T11:17:21.273 回答
0

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

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

于 2013-09-24T11:18:54.857 回答