Im Prinzip gibt es keinen Unterschied zwischen den beiden Ansätzen. Die meisten Compiler haben diese Art der Optimierung seit einigen Jahrzehnten durchgeführt.
Zusätzlich, wenn die Funktion inlined sein kann (zB ist ihre Definition für den Compiler beim Kompilieren von Code sichtbar, der eine solche Funktion verwendet), wird die Mehrheit der Compiler die Funktion komplett eliminieren und einfach Code ausgeben, um die zwei übergebenen Variablen hinzuzufügen und speichern Sie das Ergebnis wie vom Aufrufer gefordert.
Offensichtlich gehen die obigen Kommentare davon aus, dass sie mit einer relevanten Optimierungseinstellung kompiliert werden (z. B. kein Debug-Build ohne Optimierung).
Ich persönlich würde eine solche Funktion sowieso nicht schreiben. Es ist einfacher, in dem Anrufer c = a + b
anstelle von c = addNumber(a, b)
zu schreiben, so dass eine Funktion wie diese keinen Vorteil für Programmierer (Anstrengung zu verstehen) oder Programm (Leistung usw.) bietet. Sie können auch Kommentare schreiben, die keine nützlichen Informationen enthalten.
c = a + b; // add a and b and store into c
Ein anständiger Code Rezensent würde bitter über uninformativ Funktionen oder uninformativ Kommentare beschweren.
Ich würde nur verwenden, eine solche Funktion, wenn ihr Name eine besondere Bedeutung befördert (dh mehr als nur zwei Werte addiert) für die Anwendung
c = FunkyOperation(a,b);
int FunkyOperation(int a, int b)
{
/* Many useful ways of implementing this operation.
One of those ways happens to be addition, but we need to
go through 25 pages of obscure mathematical proof to
realise that
*/
return a + b;
}
Es auf Ihrem Compiler abhängig ist, und innerhalb des Compilers, seine Optimierungseinstellungen. Trotzdem passt es sehr gut zur Optimierung - wahrscheinlich wird es sogar stillschweigend durch eine Inline-Berechnung ersetzt. – usr2564301
Die meisten Compiler generieren für beide Funktionen genau dieselbe Assembly, wenn Optimierungen aktiviert sind. –
Sie können es kompilieren, sehen Sie sich die resultierende Baugruppe an und sehen Sie selbst. –