如何运用c++里的“__stdcall”?

 我来答
最绅士的痞子灬
2018-04-19 · TA获得超过2.9万个赞
知道小有建树答主
回答量:146
采纳率:100%
帮助的人:2.8万
展开全部

1、 __stdcall调用类型:该调用只是通过堆栈来push和pop参数。push参数时,顺序是从右到左。

2、“_stdcall”的作用 :在C/C++中函数默认Calling Conventions(调用约定)是:参数由右向左压入栈,由调用者清空栈。

3、在FORTRAN、PASCAL、VisualBASIC等语言中,函数的Calling Conventions是:参数由右向左压入栈,由被调函数清空栈。

4、__cdecl调用类型: 这是C的调用规则。对于所有非C++成员函数或未标有__stdcall或__fastcall的函数来说,这是默认调用规则。

5、__fastcall调用类型:从字面意思可知,这是一种快速调用。因为CPU的寄存器会被使用来存放函数参数列表中的头几个参数。而剩下参数将被从右至左地推倒堆栈上。被调用函数将从 寄存器和堆栈获得函数参数。

6、在x86中,ECX和EDX一般被用来存放开始的参数。在.NET中,为了性能上的快速,就是使用ecx和edx来实现 __fastcall的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式