_AddressOfReturnAddress
Microsoft 特定的
提供保留目前函式之傳回位址的記憶體位置位址。 此位址可能無法用來存取其他記憶體位置(例如函式的引數)。
語法
void * _AddressOfReturnAddress();
需求
內建 | 架構 |
---|---|
_AddressOfReturnAddress |
x86、x64、ARM、ARM64 |
標頭檔 < 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();
}
0012FF78
00401058
00401058
END Microsoft 特定的
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: