Heim >Backend-Entwicklung >C++ >Wann ist die Rückgabe eines Const-Werts in C tatsächlich vorteilhaft?
Wann kann die Rückgabe eines Const-Werts von Vorteil sein?
Punkt 3 von Effective C befürwortet in manchen Fällen die Rückgabe von Werten als Const. Diese Vorgehensweise hat jedoch Fragen hinsichtlich ihres Nutzens und möglicher Nachteile aufgeworfen.
In dem spezifischen bereitgestellten Beispiel:
const Object myFunc() { return myObject; }
Die Verwendung von const schränkt die Verwendung des zurückgegebenen Werts ein, da Sie dadurch keine Leistung erbringen können bestimmte Operationen an unbenannten Konstantobjekten, wie etwa arithmetische Ausdrücke.
Der Zweck der Rückgabe per Konstantwert bestand in erster Linie darin, unbeabsichtigte Bool-Werte zu verhindern Umwandlungen des Rückgabewerts. In modernem C wird für diesen Zweck jedoch die Verwendung des Schlüsselworts „explicit“ empfohlen.
Darüber hinaus verhindert die Rückgabe durch einen const-Wert in Szenarien, in denen nicht konstante Operationen für das zurückgegebene Objekt ausgeführt werden könnten, versehentliche Aufrufe eines solchen Operationen an temporär erstellten Objekten. Zum Beispiel:
(a + b).expensive();
In C 11 und höher wird jedoch dringend empfohlen, Werte als nicht konstante Werte zurückzugeben, um R-Wert-Referenzen zu nutzen, die nur mit nicht konstanten R-Werten funktionieren.
Obwohl es früher eine Begründung für die Rückgabe durch einen konstanten Wert gab, ist diese im modernen C weitgehend überholt. Zusammenfassend lässt sich sagen, dass die Rückgabe von Werten als Konstantenwert im Allgemeinen nicht als vorzuziehen angesehen wird, es sei denn, es gibt besondere Leistungsaspekte oder um unbeabsichtigte Bool-Umwandlungen zu verhindern (die jetzt explizit behandelt werden können).
Das obige ist der detaillierte Inhalt vonWann ist die Rückgabe eines Const-Werts in C tatsächlich vorteilhaft?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!