_AddressOfReturnAddress

Específicos de Microsoft

Proporciona la dirección de la ubicación de memoria que contiene la dirección de devolución de la función actual. Esta dirección no puede utilizar para tener acceso a otras ubicaciones de memoria (por ejemplo, los argumentos de la función).

void * _AddressOfReturnAddress();

Requisitos

Intrínseco

Arquitectura

_AddressOfReturnAddress

x86, x64

Archivo de encabezado <intrin.h>

Comentarios

Cuando _AddressOfReturnAddress se utiliza en un programa compilado con /clr, la función que contiene la llamada de _AddressOfReturnAddress se compiló como función nativa. Cuando una función compilada como llamadas administradas en la función que contiene _AddressOfReturnAddress, _AddressOfReturnAddress podría comportarse como se espera.

Esta rutina sólo está disponible como intrínseco.

Ejemplo

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

Vea también

Referencia

Intrínsecos del controlador

Palabras clave de C++