Ich studiere gerade, wie man effizienten C ++ - Code schreibt, und bei Funktionsaufrufen kommt mir eine Frage in den Sinn. Vergleich dieser Pseudocode-Funktion:
not-void function-name () {
do-something
return value;
}
int main () {
...
arg = function-name();
...
}
mit dieser ansonsten identischen Pseudocode-Funktion:
void function-name (not-void& arg) {
do-something
arg = value;
}
int main () {
...
function-name(arg);
...
}
Welche Version ist effizienter und in welcher Hinsicht (Zeit, Speicher usw.)? Wenn es darauf ankommt, wann wäre der erste effizienter und wann wäre der zweite effizienter?
Bearbeiten : Für den Kontext beschränkt sich diese Frage auf Unterschiede zwischen Hardwareplattformen und größtenteils auch auf Software. Gibt es maschinenunabhängige Leistungsunterschiede?
Bearbeiten : Ich sehe nicht, wie dies ein Duplikat ist. Die andere Frage besteht darin, die Übergabe als Referenz (vorheriger Code) mit der Übergabe als Wert (unten) zu vergleichen:
not-void function-name (not-void arg)
Welches ist nicht das gleiche wie meine Frage. Ich konzentriere mich nicht darauf, wie ich ein Argument besser an eine Funktion übergeben kann. Mein Fokus liegt darauf, wie ich ein Ergebnis besser an eine Variable von außerhalb des Bereichs weitergeben kann.