_AddressOfReturnAddress
Microsoft Specific
Provides the address of the memory location that holds the return address of the current function. This address may not be used to access other memory locations (for example, the function's arguments).
Syntax
void * _AddressOfReturnAddress();
Requirements
Intrinsic | Architecture |
---|---|
_AddressOfReturnAddress |
x86, x64, ARM, ARM64 |
Header file <intrin.h>
Remarks
When _AddressOfReturnAddress
is used in a program compiled with /clr, the function containing the _AddressOfReturnAddress
call is compiled as a native function. When a function compiled as managed calls into the function containing _AddressOfReturnAddress
, _AddressOfReturnAddress
might not behave as expected.
This routine is only available as an intrinsic.
Example
// 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
END Microsoft Specific
See also
Phản hồi
https://aka.ms/ContentUserFeedback.
Sắp ra mắt: Trong năm 2024, chúng tôi sẽ dần gỡ bỏ Sự cố với GitHub dưới dạng cơ chế phản hồi cho nội dung và thay thế bằng hệ thống phản hồi mới. Để biết thêm thông tin, hãy xem:Gửi và xem ý kiến phản hồi dành cho