愚蠢的问题,这是一个改变函数内部函数参数值的好方法,还是创建另一个变量来保存它,哪一个更好? 例如:
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;
}
感谢。
答案 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个字节,这在嵌入式环境中可能很好(但编译器很可能会对其进行优化)。