Partilhar via


_AddressOfReturnAddress

Específicos do Microsoft

Fornece o endereço do local da memória que armazena o endereço de retorno da função atual. Este endereço não pode ser usado para acessar outros locais de memória (por exemplo, os argumentos da função).

void * _AddressOfReturnAddress();

Requisitos

Intrínseca

Arquitetura

_AddressOfReturnAddress

x86,x64

Arquivo de cabeçalho <intrin.h>

Comentários

Quando _AddressOfReturnAddress é usado em um programa compilado com /clr, a função que contém o _AddressOfReturnAddress chamada é compilada como uma função nativa. Quando uma função é compilado como gerenciado chamadas para a função que contém _AddressOfReturnAddress, _AddressOfReturnAddress pode não se comportar conforme o esperado.

Esta rotina só está disponível como um intrínseco.

Exemplo

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

Consulte também

Referência

Intrínsecos do compilador

Palavras-chave C++