work hard work smart

专注于Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++ CALLBACK和WINAPI两个宏的含义?

Posted on 2011-11-16 15:21  work hard work smart  阅读(1126)  评论(1编辑  收藏  举报

在编程时,也许你会看到函数声明或定义中会出现CALLBACK和WINAPI两个宏。其实,它们也是__stdcall的代名词。看windef.h中的内容:

#define CALLBACK    __stdcall

#define WINAPI      __stdcall

__stdcall是调用类型.调用类型有:__fastcall、__cdecl、__stdcall。

 1、__cdecl调用类型:    这是C的调用规则。对于所有非C++成员函数或未标有__stdcall或__fastcall的函数来说,这是默认调用规则。

 2、__fastcall调用类型:  这是一种快速调用。因为CPU的寄存器会被使用来存放函数参数列表中的头几个参数。

 3、 __stdcall调用类型:    该调用只是通过堆栈来push和pop参数。