stdcall

读者可能会注意到上面的_stdcall这个词,它实际上是 Microsoft 。对

编译器的一个扩展,任何一个支持开发下win32应用程序的编译器都会有此

或与此等价的选项。例如. Borland ,watcom  的编译器均有些选项。用

_stacall标记的函数将使用标准的调用约定,即这些函数将在返回到调用

者之前将参数从栈中删除,Pascal函数对于栈的处理使用的也是同一种方

式.在常规的C/C++调用约定中,栈的清理工作则是由调用者完成的.大多数

其它的编程语言,如Visual Basic缺省情况下使用的也是标准的调用约定,

标准调用约定名称的由来在于所有的win32 api函数,除了那些带有变参的

外,使用的都是这种调用方式,带有变参的函数所用的仍然是C调用约定,即

_cdecl,windows采用标准的调用 约定的原因在于这种约定可以减少代码

的大小 ,另外还有一个原因是早期的Windows运行于640KB 的系统上的。

Microsoft平台上 CoM 接日所提供的所有函数使用的均是标准的调用约定

。参数数目可变的通数便用的则是 c 调用约定。一般人们希望接口的实

现使用这些约定,但要说明的是这并不是com的绝对需要,开发人员可以选

择使用另外的某些调用约定. 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值