Partager via


_AddressOfReturnAddress

Spécifique à Microsoft

Fournit l'adresse de l'emplacement de mémoire qui contient l'adresse de retour de la fonction active. Cette adresse ne peut être utilisée pour accéder à d'autres emplacements de mémoire (par exemple, les arguments de fonction).

void * _AddressOfReturnAddress();

Configuration requise

Intrinsèque

Architecture

_AddressOfReturnAddress

x86, x64

Fichier d'en-tête <intrin.h>

Notes

Lorsque _AddressOfReturnAddress est utilisé dans un programme compilé avec /clr, la fonction contenant l'appel d' _AddressOfReturnAddress est compilée comme fonction native. Lorsque appelle aussi managés compilés par fonction dans la fonction contenant _AddressOfReturnAddress, _AddressOfReturnAddress peuvent ne pas se comporter que prévu.

Cette routine est uniquement disponible sous forme intrinsèque.

Exemple

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

Voir aussi

Référence

intrinsèques du compilateur

Mots clés C++