gpt4 book ai didi

c - _AddressOfReturnAddress() 相当于 Clang/LLVM

转载 作者:太空狗 更新时间:2023-10-29 15:33:07 32 4
gpt4 key购买 nike

Visual C++ 有 an intrinsic function called _AddressOfReturnAddress它返回当前函数在堆栈上的返回地址的地址

注意_ReturnAddress相同,它只返回返回地址的副本

在 Clang/LLVM 中是否有任何等效于 _AddressOfReturnAddress 的东西?

最佳答案

作为rustyx pointed out , Clang/LLVM(和 GCC)提供了 __builtin_return_address() 相当于 _ReturnAddress()。 Clang/LLVM 还提供了 __builtin_frame_address(),它(取决于您的 ABI、架构等的细节)可能有点类似于 _AddressOfReturnAddress().

例如,下面的代码...

std::cout<< ((int64_t) __builtin_return_address(0)) << ' '
<< ((int64_t) __builtin_frame_address (0)) << ' '
<<*((int64_t*)__builtin_frame_address (0)+1)<<'\n';

...在 OS X 上打印以下内容机器。

140735807202733 140734600362944 140735807202733

关于c - _AddressOfReturnAddress() 相当于 Clang/LLVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944119/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com