다음을 통해 공유


_AddressOfReturnAddress

Microsoft 전용

현재 함수의 반환 주소를 보유하는 메모리 위치의 주소를 제공합니다. 이 주소는 다른 메모리 위치(예: 함수의 인수)에 액세스하는 데 사용할 수 없습니다.

구문

void * _AddressOfReturnAddress();

요구 사항

Intrinsic 아키텍처
_AddressOfReturnAddress x86, x64, ARM, ARM64

헤더 파일<intrin.h>

설명

/Clr을 사용하여 컴파일된 프로그램에서 _AddressOfReturnAddress을 사용하는 경우 호출 _AddressOfReturnAddress을 포함하는 함수는 네이티브 함수로 컴파일됩니다. 포함된 _AddressOfReturnAddress_AddressOfReturnAddress 함수에 대한 관리형 호출로 컴파일된 함수가 예상대로 작동하지 않을 수 있습니다.

이 루틴은 내장 루틴으로만 사용할 수 있습니다.

예시

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

Microsoft 전용 종료

참고 항목

컴파일러 내장 함수
키워드