参数传递的和命名约定

Microsoft 专用

,在通过时,所有参数被扩展为 32 位。 返回值还可扩大到 32 位并返回该 EAX 注册,除 8 字节结构,在 EDX 返回: EAX 注册对。 ,在隐藏的指针返回结构,较大的结构。 EAX 注册返回。 参数从右向左推入堆栈。 不是 POD 框架在寄存器不会返回。

,如果在函数中,编译器生成 prolog 和 epilog 代码保存和还原 ESI、、和 EDI EBX EBP 寄存器。

备注

当结构、联合或类从函数返回值时,该类型的所有定义需要相同,则程序可能会在运行时。

有关如何定义的信息拥有 prolog 和 epilog 代码,请参见 裸函数调用

下面的调用约定可视化 C/C++ 编译器支持。

关键字

堆栈清理

参数传递

__cdecl

调用方

推入堆栈的参数,按相反的顺序 (从右向左)

__clrcall

按顺序加载在 CLR 表达式堆栈上的参数 (从左到右)。

__stdcall

被调用方

推入堆栈的参数,按相反的顺序 (从右向左)

__fastcall

被调用方

存储在注册,然后被推入堆栈

__thiscall

被调用方

推入堆栈;在 ECX 存储的 指针

有关相关信息,请参见 已过时的调用约定

结束特定

请参见

参考

调用约定