_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 _AddressOfReturnAddress
// (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-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für