__cdecl程序的压栈方式为C风格
__stdcall为PASCAL风格 
举个例子:
(1)   C函数  Fun1(a,b,c)
   函数调用时,参数压栈顺序为 c , b , a
(2)   PASCAL函数 Fun(a,b,c)
  函数调用时,参数压栈顺序为 a, b , c
==========================
         STDCALL 告诉编译器参数的传递约定。参数的传递约定是指参数传达时的顺序(从左到右或从右到左)和由谁恢复堆栈指针(调用者或被调用者)。在Win16下有两种约定:C 和 PASCAL。C 约定规定参数传递顺序是从右到左,即最右边的参数最先压栈,由调用者恢复堆栈指针。PASCAL约定和C约定正好相反,它规定参数是从左向右传递,由被调用者恢复堆栈。Win16采用了PASCAL约定, 因为PASCAL约定产生的代码量要小。当不知道参数的个数时,C约定特别有用。如在函数wsprintf () 中, wsprintf预先并不知道要传递几个参数,所以它不知道如何恢复堆栈。STDCALL是C约定和PASCAL约定的混合体,它规定参数的传递是从右到左,恢复堆栈的工作交由被调用者。Win32只用STDCALL约定,但除了一个特例,即:wsprintf。

最新文章

  1. Qt 开启鼠标跟踪,自动激活mouseMoveEvent的问题
  2. Python中的绝对路劲和相对路径
  3. C/C++ 结构体 指针 简单输入输出
  4. MCV之行为
  5. poj3311 Hie with the Pie (状态压缩dp,旅行商)
  6. android开发,关于android app实现静默安装自己(系统签名)
  7. bzoj1601: [Usaco2008 Oct]灌水
  8. iOS 网络编程
  9. Apache MINA 框架之默认session管理类实现
  10. windows新的数据类型
  11. Sipdroid实现SIP(二): 呼叫请求
  12. 张高兴的 UWP 开发笔记:定制 ContentDialog 样式
  13. 我的"Hello World!"之旅
  14. kubernetes系列03—kubeadm安装部署K8S集群
  15. [深度学习] 权重初始化--Weight Initialization
  16. 四、XML语言学习(2)
  17. 迭代和JDB调试
  18. springboot项目搭建
  19. Postman和Selenium IDE开局自带红蓝BUFF属性,就问你要还是不要
  20. static, const 和 static const 变量的初始化问题

热门文章

  1. Mybatis-Spring整合Spring
  2. python 实例方法,类方法,静态方法
  3. StackOverflow之旅<2>------{HashMap和Hashtable的区别}
  4. 报 "错误: 无法取消引用int" 的问题解决纪录
  5. C#中?和??用法
  6. hdu-1162 Eddy's picture---浮点数的MST
  7. 【BZOJ4033】[HAOI2015] 树上染色(树形DP)
  8. 【BZOJ1076】[SCOI2008] 奖励关(状压DP)
  9. vuejs属性绑定和双向绑定
  10. [转] 防止js全局变量污染方法总结