_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