Heim >Backend-Entwicklung >C++ >Was bestimmt die Auswertungsreihenfolge von Funktionsparametern in C und C?
Funktionsparameter-Auswertungsreihenfolge
In C und C ist die Reihenfolge, in der Funktionsparameter ausgewertet werden, nicht durch die Sprachstandards festgelegt.
Bewertungsreihenfolge
Die Bewertung erfolgt nach dem C99-Standard Die Reihenfolge der Parameter ist nicht angegeben. Es gibt jedoch einen Sequenzpunkt vor dem eigentlichen Funktionsaufruf, was bedeutet, dass alle Parameterauswertungen garantiert abgeschlossen sind, bevor die Funktion ausgeführt wird.
In C ist die Reihenfolge der Argumentauswertung ebenfalls nicht angegeben. Nebenwirkungen aller Argumentausdrücke treten auf, bevor die Funktion eingegeben wird.
Funktionsaufrufimplementierung
Die C- und C-Standards erfordern nicht, dass Funktionsaufrufe mithilfe der Hardware implementiert werden Stapel. Dies ist ein Implementierungsdetail, das dem Compiler und der Plattform überlassen bleibt. In der Praxis verwenden die meisten gängigen Architekturen jedoch den Hardware-Stack zur Parameterübergabe.
Widersprüchliche Informationen
Unklarheiten über die Reihenfolge der Parameterauswertung können durch unvollständige oder falsche Informationen in entstehen Bücher. Die Sprachnormen sind die maßgebliche Informationsquelle zu diesem Thema. Die offiziellen C99- und C11-Entwürfe sowie der öffentliche C-Entwurf sind online verfügbar und bieten klare Leitlinien zu diesem Thema.
Das obige ist der detaillierte Inhalt vonWas bestimmt die Auswertungsreihenfolge von Funktionsparametern in C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!