您的位置:首页 > 编程语言 > C语言/C++

c/c++函数调用约定

2013-04-19 21:16 357 查看
调用方式

参数传递顺寻

清理堆栈

支持变长参数

使用对象

函数名修饰

(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整理而成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: