CodeWalk

C++函数调用约定对比

作者:屠龙少年 · 2026-05-30 12:55

请解释__cdecl、__stdcall、__fastcall三种调用约定的区别。

回答

屠龙少年

__cdecl(默认):调用者清理栈,支持可变参数。__stdcall:被调用者清理,参数个数固定。__fastcall:前2参数用寄存器传递。Win32 API用__stdcall。跨语言调用时需匹配调用约定。