cc++函数调用约定

cc++函数调用约定,第1张

调用方式

参数传递顺寻

清理堆栈         

支持变长参数           

使用对象

函数名修饰

(Name-decoration convention)

其他

__cdecl

从右至左

调用者

支持

C/C++默认调用方式

函数名前加下划线如函数main修饰成_main

生成的代码比stdcall大,因为其要求每个函数调用包含清理堆栈的代码

__stdcall

从右至左

被调用者

不支持

Win32 API和dll中导出函数使用

下划线开头,函数名,然后@符号,最后是参数的总byte数。如:int f(int a, double b ),名字为_f@12

 

 

__fastcall

先放入EDX和ECX中,在从右至左

被调用者

不支持

 

以@开头,函数名,然后@符号最后是参数的总byte数,如:@f@12

 

快速传参,即快速调用

thiscall

从右至左,this指针放ECX中

被调用者

不支持

C++成员函数专用,用来支持this指针

 

 

本文档根据MSDN整理而成

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/2083244.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-07-22
下一篇2022-07-22

发表评论

登录后才能评论

评论列表(0条)

    保存