_AddressOfReturnAddress

Microsoft 专用

提供包含该函数的返回地址内存位置的地址。 此地址不可用于访问其他内存位置 (例如,函数的参数)。

void * _AddressOfReturnAddress();

要求

内部

体系结构

_AddressOfReturnAddress

x86, x64

头文件 <intrin.h>

备注

_AddressOfReturnAddress 程序中使用编译 /clr时,包含 _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();
}
  

请参见

参考

编译器内部函数

C++ 关键字