【问题标题】:change function param value inside function in C在C中的函数内更改函数参数值
【发布时间】:2013-09-24 11:12:04
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: c function param


    【解决方案1】:

    写入参数很好,并且可能根据编译器的聪明程度,甚至可能在性能方面更好。

    另一方面,你的例子也可以写成:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 2015-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-15
          • 2023-03-14
          • 1970-01-01
          • 2020-10-20
          • 1970-01-01
          相关资源
          最近更新 更多