_AddressOfReturnAddress
[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]
Microsoft-spezifisch
Stellt die Adresse der Speicheradresse bereit, die die Rückgabeadresse der aktuellen Funktion enthält. Diese Adresse kann nicht verwendet werden, um andere Speicherorte (z. B. die Argumente der Funktion) zuzugreifen.
void * _AddressOfReturnAddress();
Anforderungen
Intrinsisch |
Architektur |
---|---|
_AddressOfReturnAddress |
x86, x64 |
Headerdatei <intrin.h>
Hinweise
Wenn _AddressOfReturnAddress in einem Programm verwendet wird, die mit /clrkompiliert wird, wird die Funktion, die den _AddressOfReturnAddress Aufruf enthält, als systemeigene Funktion kompiliert. Wenn eine Funktion, die als verwaltete Aufrufe in die Funktion enthält _AddressOfReturnAddresskompiliert wird, _AddressOfReturnAddress sich nicht wie erwartet verhielte.
Diese Routine ist als systeminterne Funktion nur 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();
}