Share via


_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();
}
          
        

Siehe auch

Referenz

Systeminterne Funktionen des Compilers

C++-Schlüsselwörter