Argument, przekazując i konwencji nazewnictwa
Programu Microsoft
Wszystkie argumenty są rozszerzone do 32 bitów, gdy są one przekazywane.Wartości zwracane są również rozszerzone do 32 bitów i zwracane w rejestrze EAX, z wyjątkiem dla struktur 8-bajtowe, które są zwracane w parze rejestru EDX:EAX.Większe struktury są zwracane w rejestrze EAX jako wskaźniki do ukrytych zwrotu struktur.Parametry są wkładany na stos od prawej do lewej.Struktury, które nie są strączki nie będą zwracane w rejestrach.
Kompilator generuje prologu i rejestruje epilog kod do zapisywania i przywracania ESI, EDI, element EBX i EBP, jeśli są one używane w funkcji.
[!UWAGA]
Gdy struct, Unii lub klasy jest zwracany przez funkcję przez wartość, wszystkie definicje typu muszą być takie same, else program może zakończyć się niepowodzeniem w czasie wykonywania.
Aby uzyskać informacje dotyczące sposobu definiowania własny kod prologu i epilog funkcji, zobacz Nagi wywołania funkcji.
Następujące konwencje wywoływania są obsługiwane przez kompilator Visual C/C++.
Słowo kluczowe |
Oczyszczanie stosu |
Parametr przekazując |
---|---|---|
Obiekt wywołujący |
Wypycha parametrów na stosie, w odwrotnej kolejności (od prawej do lewej) |
|
n/d! |
Załadowanie parametrów na stosie wyrażenie CLR w kolejności (od lewej do prawej). |
|
Wywoływany |
Wypycha parametrów na stosie, w odwrotnej kolejności (od prawej do lewej) |
|
Wywoływany |
Przechowywane w rejestrach, następnie przesunięta na stosie |
|
Wywoływany |
Przesunięta na stosie; to wskaźnik przechowywane w ECX |
Aby uzyskać pokrewne informacje, zobacz Przestarzałe konwencji wywoływania.
KONIEC szczególne