【C++进阶】__stdcall 详解

【C++进阶】__stdcall 详解

    __stdcall用来修饰函数,被该关键字修饰的函数,其参数都是从右向左依次被压入到栈中,函数调用在返回前需要清理堆栈,被调函数在返回前负责清理堆栈。

函数调用约定    

    函数调用约定主要约束了两件事:
1. 参数传递的顺序
2. 调用堆栈由谁(调用函数或被调用函数)负责清理

    __stdcall是函数调用约定的一种。__stdcall表示:
1. 参数从右向左压入堆栈(这样当函数参数出栈时,刚好是先拿到最左边的参数)
2. 函数被调用者修改堆栈,负责清理自己在堆栈中的参数
3. 函数名(在编译器层次)自动加前导下划线,后面紧跟着一个@符号,其后紧跟着参数的尺寸。因此,声明为 int func( int a, double b ) 的函数修饰如下所示:_func@12



【C++进阶】__stdcall 详解

上一篇:c语言中如何精确判断bool float是否等于零?


下一篇:C++回顾之友元