Condividi tramite


_AddressOfReturnAddress

Specifici di Microsoft

Fornisce l'indirizzo della posizione di memoria contenente l'indirizzo di ritorno di una funzione corrente. Questo indirizzo non può essere utilizzato per accedere ad altri percorsi di memoria, ad esempio gli argomenti della funzione.

void * _AddressOfReturnAddress();

Requisiti

Intrinseco

Architettura

_AddressOfReturnAddress

x86, x64

File di intestazione <intrin.h>

Note

Quando _AddressOfReturnAddress viene utilizzato in un programma compilato con /clr, la funzione che contiene la chiamata di _AddressOfReturnAddress compilata come funzione nativa. Quando una funzione compilata come chiamate gestite nella funzione che contiene _AddressOfReturnAddress, _AddressOfReturnAddress potrebbe non avere come previsto.

Questa procedura è disponibile solo come intrinseci.

Esempio

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

Vedere anche

Riferimenti

Intrinseci del compilatore

Parole chiave C++