Я не вижу причины для бита tmp = value
, так как в первой версии параметр не является справочным, но я думаю, что часто рекомендуется брать параметр по значению, а затем возвращать обновленныйкопировать, вместо того, чтобы брать и изменять ссылки.Меньшее количество побочных эффектов облегчает анализ кода.
Так что я бы сказал, что самая хорошая версия такова:
int f(int value)
{
//do something with value
return value;
}
int a = f(a);
Я не уверен, почему вы настаивали на том, чтобы параметрссылка в вашем третьем примере.