簡體   English   中英

在C中的函數內部更改函數參數值

[英]change function param value inside function in C

愚蠢的問題,這是在函數中更改函數參數值或創建另一個變量來保存它的好方法,哪個更好? 例如:

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

要么

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

謝謝。

寫入參數很好,根據編譯器的智能程度,它甚至可能在性能方面更好。

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

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個字節,這在嵌入式環境中可能很好(但是編譯器很可能會對其進行優化)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM