_AddressOfReturnAddress
Específicos de Microsoft
Proporciona la dirección de la ubicación de memoria que contiene la dirección de retorno de la función actual. Es posible que esta dirección no se use para acceder a otras ubicaciones de memoria (por ejemplo, los argumentos de la función).
Sintaxis
void * _AddressOfReturnAddress();
Requisitos
Intrinsic | Arquitectura |
---|---|
_AddressOfReturnAddress |
x86, x64, ARM, ARM64 |
Archivo de encabezado<intrin.h>
Comentarios
Si _AddressOfReturnAddress
se usa en un programa compilado con /clr, la función que contiene la llamada a _AddressOfReturnAddress
se compilará como una función nativa. Cuando una función compilada como administrada llama a la función que contiene _AddressOfReturnAddress
, es posible que _AddressOfReturnAddress
no se comporte según lo previsto.
Esta rutina solo está disponible como función intrínseca.
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 _AddressOfReturnAddress
// (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
FIN de Específicos de Microsoft