_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

Systeminterne Compiler
Schlüsselwörter