Heim >Backend-Entwicklung >C++ >Was bestimmt die Auswertungsreihenfolge von Funktionsparametern in C und C?

Was bestimmt die Auswertungsreihenfolge von Funktionsparametern in C und C?

Susan Sarandon
Susan SarandonOriginal
2024-12-21 06:35:10447Durchsuche

What Determines the Evaluation Order of Function Parameters in C and 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn