自动清栈 手工清栈 啥意思
手工怎么清啊
_stdcall采用自动清栈的方式,而_cdecl是手工清栈.啥意思
答案:2 悬赏:40 手机版
解决时间 2021-03-23 17:40
- 提问者网友:王者佥
- 2021-03-23 03:47
最佳答案
- 五星知识达人网友:醉吻情书
- 2021-03-23 05:22
这个指的是由调用者来处理,还是由被调用者来处理。
自动清栈,就是指,由调用者来处理,被调用者不需要处理。
手工清栈,就是指,调用者不会管被调用的函数使用的栈,需要由被调用者自己处理。
其实这两个都是由编译器处理的,你不需要手工处理。---当然你得知道。
在函数的申明与实现中也要一致,否则就会出错。
自动清栈,就是指,由调用者来处理,被调用者不需要处理。
手工清栈,就是指,调用者不会管被调用的函数使用的栈,需要由被调用者自己处理。
其实这两个都是由编译器处理的,你不需要手工处理。---当然你得知道。
在函数的申明与实现中也要一致,否则就会出错。
全部回答
- 1楼网友:像个废品
- 2021-03-23 06:11
__cdecl是c语言中使用的默认调用方式,参数从右至左进栈。因为进栈的参数由调用者清理,所以支持不定参数。标准c库函数都是__cdecl。
__fastcall这是使用寄存器来传递参数,至于使用哪个寄存器要看特定的编译器
__stdcall传参模式和__cdecl相同,只不过参数栈空间的清理由函数自动完成,无需调用者清理,windows api基本都是使用这种调用方式
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯