_AddressOfReturnAddress
Microsoft-spezifisch
Stellt die Adresse des Speicherspeicherorts bereit, der die Absenderadresse der aktuellen Funktion enthält. Diese Adresse kann nicht für den Zugriff auf andere Speicherspeicherorte verwendet werden (z. B. die Argumente der Funktion).
Syntax
void * _AddressOfReturnAddress();
Requirements (Anforderungen)
Intrinsic | Aufbau |
---|---|
_AddressOfReturnAddress |
x86, x64, ARM, ARM64 |
Headerdatei<intrin.h>
Hinweise
Wenn _AddressOfReturnAddress
in einem programmkompilierten Programm mit /clr kompiliert wird, wird die Funktion, die den _AddressOfReturnAddress
Aufruf enthält, als systemeigene Funktion kompiliert. Wenn eine Funktion als verwaltete Aufrufe in die Funktion kompiliert wird, die enthält _AddressOfReturnAddress
, _AddressOfReturnAddress
verhält sich dies möglicherweise nicht wie erwartet.
Diese Routine ist nur als systeminterne Funktion verfügbar.
Beispiel
// compiler_intrinsics_AddressOfReturnAddress.cpp
// processor: x86, x64
#include <stdio.h>
#include <intrin.h>
// This function will print three values:
// (1) The address retrieved from _AddressOfReturnAdress
// (2) The return address stored at the location returned in (1)
// (3) The return address retrieved the _ReturnAddress* intrinsic
// Note that (2) and (3) should be the same address.
__declspec(noinline)
void func() {
void* pvAddressOfReturnAddress = _AddressOfReturnAddress();
printf_s("%p\n", pvAddressOfReturnAddress);
printf_s("%p\n", *((void**) pvAddressOfReturnAddress));
printf_s("%p\n", _ReturnAddress());
}
int main() {
func();
}
0012FF78
00401058
00401058
Ende Microsoft-spezifisch
Siehe auch
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für