当前位置:新励学网 > 秒知问答 > 函数的返回地址是什么意思

函数的返回地址是什么意思

发表时间:2024-08-19 12:13:27 来源:网友投稿

函数的返回地址 函数调用时通过一个指向函数的指针指向函数的地址,函数返回时将回归到调用处,那个地方是返回地址。

获取返回地址 在某些情况下,我们需要在一个函数里获取这个函数的返回地址,用来定位一些东西。在x86的C/C++里,一般函数调用形式不是__cdecl就是__stdcall,都是从右向左压参数的,所以最左边参数地址-4就是函数返回地址的存放地址。__thiscall也是一样,只是把this指针放到了ecx里。获取代码如下: intfunc (int arg1, ......) { size_t*ret_addr = (size_t*)(arg1); printf(\"ret_addr = %08X\", *(ret_addr - 1)); } 有一个特殊情况,那就是COM的纯虚函数调用。因为把this指针也压到栈里了,在形参上又不可见,所以返回地址应该变为*(ret_addr -2)。

免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。

如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!