_AddressOfReturnAddress

Sezione specifica Microsoft

Fornisce l'indirizzo della posizione di memoria che contiene l'indirizzo restituito della funzione corrente. Questo indirizzo non può essere usato per accedere ad altri percorsi di memoria, ad esempio gli argomenti della funzione.

Sintassi

void * _AddressOfReturnAddress();

Requisiti

Intrinsic Architettura
_AddressOfReturnAddress x86, x64, ARM, ARM64

<File di intestazione intrin.h>

Osservazioni:

Quando _AddressOfReturnAddress viene usato in un programma compilato con /clr, la funzione contenente la _AddressOfReturnAddress chiamata viene compilata come funzione nativa. Quando una funzione compilata come chiamate gestite nella funzione contenente _AddressOfReturnAddress, _AddressOfReturnAddress potrebbe non comportarsi come previsto.

Questa routine è disponibile solo come funzione intrinseca.

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 _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

Fine sezione specifica Microsoft

Vedi anche

Intrinseci del compilatore
Parole chiave