Изменить значение параметра функции внутри функции в 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;
}
Благодарю.
3 ответа
Это нормально для записи в параметр, и может быть даже лучше с точки зрения производительности в зависимости от того, насколько умен компилятор.
С другой стороны, ваш пример также может быть записан как:
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 байта в стеке, что может быть хорошо во встроенной среде (но вполне вероятно, что компилятор его оптимизирует).