Argument-Übergeben und Namenskonventionen
Microsoft-spezifisch
Alle Argumente werden zu 32 Bits erweitert, wenn sie übergeben werden.Rückgabewerte werden ebenfalls erweitert und 32 Bits in EAX-Register zurückgegeben, außer 8-Byte-Strukturen, die im EDX zurückgegeben werden: EAX-Register.Größere Strukturen werden im EAX-Register wie Zeiger auf den verborgenen Return strukturen zurückgegeben.Parameter werden auf dem Stapel von rechts nach links verschoben.Strukturen, die nicht Hülsen sind, werden nicht in Registern zurückgegeben.
Der Compiler generiert Einleitungs- und Epilogcode, um die ESI-, EDI-, EBX- EBP-Register und speichern und wiederherzustellen, wenn sie in der Funktion verwendet werden.
Hinweis |
---|
Wenn eine Struktur, Union oder Klasse aus einer Funktion als Wert zurückgegeben wird, schlagen möglicherweise alle Definitionen des Typs müssen identisch sein. Andernfalls das Programm zur Laufzeit aus. |
Weitere Informationen zum Einrichten des eigenen Funktion einleitungs- und Epilogcode finden Sie unter Nackte Funktionsaufrufedefiniert.
Die folgenden Aufrufkonventionen werden vom Sicht-C/C++-Compiler unterstützt.
Schlüsselwort |
Stapelcleanup |
Übergeben von Parametern |
---|---|---|
Aufrufer |
Legt Parameter auf dem Stapel in umgekehrter Reihenfolge (von rechts nach links) |
|
nicht verfügbar |
Ladeparameter auf CLR-Ausdrucksstapel in der Reihenfolge (von links nach rechts). |
|
Wird Person |
Legt Parameter auf dem Stapel in umgekehrter Reihenfolge (von rechts nach links) |
|
Wird Person |
Gespeichert in Registern und dann auf Stapel gelegt |
|
Wird Person |
Gedrückt auf Stapel. dies Zeiger in ECX gespeichert |
Weitere Informationen finden Sie unter Veraltete Aufrufkonventionen.
ENDEN-Besondere