首页 > 编程语言 > 详细

【C++进阶】__stdcall 详解

时间:2014-02-15 10:09:40      阅读:357      评论:0      收藏:0      [点我收藏+]
【C++进阶】__stdcall 详解

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

函数调用约定    

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

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



【C++进阶】__stdcall 详解

原文:http://blog.csdn.net/fu_zk/article/details/19126301

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!