Udostępnij za pośrednictwem


_AddressOfReturnAddress

Specyficzne dla firmy Microsoft

Zawiera adres lokalizacji pamięci, która zawiera adres zwrotny bieżącej funkcji. Ten adres może nie być używany do uzyskiwania dostępu do innych lokalizacji pamięci (na przykład argumentów funkcji).

Składnia

void * _AddressOfReturnAddress();

Wymagania

Nieodłączny Architektura
_AddressOfReturnAddress x86, x64, ARM, ARM64

Plik<nagłówka intrin.h>

Uwagi

Gdy _AddressOfReturnAddress jest używany w programie skompilowanym za pomocą /clr, funkcja zawierająca _AddressOfReturnAddress wywołanie jest kompilowana jako funkcja natywna. Gdy funkcja skompilowana jako zarządzane wywołania do funkcji zawierającej _AddressOfReturnAddresselement _AddressOfReturnAddress może nie zachowywać się zgodnie z oczekiwaniami.

Ta rutyna jest dostępna tylko jako wewnętrzna.

Przykład

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

END Microsoft Specific

Zobacz też

Funkcje wewnętrzne kompilatora
Słowa kluczowe