_AddressOfReturnAddress
Specifici di Microsoft
Fornisce l'indirizzo della posizione di memoria contenente l'indirizzo di ritorno di una funzione corrente. Questo indirizzo non può essere utilizzato per accedere ad altri percorsi di memoria, ad esempio gli argomenti della funzione.
void * _AddressOfReturnAddress();
Requisiti
Intrinseco |
Architettura |
---|---|
_AddressOfReturnAddress |
x86, x64 |
File di intestazione <intrin.h>
Note
Quando _AddressOfReturnAddress viene utilizzato in un programma compilato con /clr, la funzione che contiene la chiamata di _AddressOfReturnAddress compilata come funzione nativa. Quando una funzione compilata come chiamate gestite nella funzione che contiene _AddressOfReturnAddress, _AddressOfReturnAddress potrebbe non avere come previsto.
Questa procedura è disponibile solo come intrinseci.
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 _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();
}