На даний момент я вивчаю, як писати ефективний код на C ++, і з приводу викликів функцій мені приходить в голову питання. Порівняння цієї функції псевдокоду:
not-void function-name () {
do-something
return value;
}
int main () {
...
arg = function-name();
...
}
з цією ідентичною інакше функцією псевдокоду:
void function-name (not-void& arg) {
do-something
arg = value;
}
int main () {
...
function-name(arg);
...
}
Яка версія є більш ефективною і в якому відношенні (час, пам’ять тощо)? Якщо це залежить, то коли перший буде більш ефективним, а коли більш ефективним буде другий?
Редагувати : Для контексту це питання обмежується різницями, що не залежать від апаратної платформи, і здебільшого програмним забезпеченням. Чи є якісь незалежні від машини різниці в продуктивності?
Редагувати : я не бачу, як це дублікат. Іншим питанням є порівняння передачі за посиланням (попередній код) до передачі за значенням (нижче):
not-void function-name (not-void arg)
Що не те саме, що моє запитання. Я зосереджуюсь не на тому, який найкращий спосіб передати аргумент функції. Мою увагу зосереджено на якій це найкращий спосіб , щоб передати з результату змінних від зовнішнього обсягу.