共用方式為


_AddressOfReturnAddress

Microsoft 專有的

提供會保留目前的函式的傳回位址的記憶體位置的位址。 這個位址不可以用於存取其他記憶體位置 (例如,函式的引數)。

void * _AddressOfReturnAddress();

需求

內建

架構

_AddressOfReturnAddress

x86,x64

標頭檔 <intrin.h>

備註

當**_AddressOfReturnAddress在編譯的程式中使用 /clr,函式包含_AddressOfReturnAddress呼叫會編譯為原生函式。 函式編譯為 managed 呼叫函式包含_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++ 關鍵字