_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 _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
Microsoft 전용 종료