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

简介:

在编程时,也许你会看到函数声明或定义中会出现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参数。



本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/11/16/2251294.html,如需转载请自行联系原作者

目录
相关文章
|
7月前
|
编译器 Linux C++
【C++ 跨平台开发 】掌握 C++ 跨平台关键宏的使用
【C++ 跨平台开发 】掌握 C++ 跨平台关键宏的使用
160 3
|
7月前
|
存储 缓存 安全
【cmake 生成配置文件】CMake与现代C++:配置文件宏的深度探索与应用
【cmake 生成配置文件】CMake与现代C++:配置文件宏的深度探索与应用
279 0
|
7月前
|
安全 编译器 C语言
【C++ 编译器 版本支持】深度解读C++ 版本以及编译器版本相关宏
【C++ 编译器 版本支持】深度解读C++ 版本以及编译器版本相关宏
143 0
|
7月前
|
消息中间件 存储 API
【C/C++】回调函数详解&注册窗口类&LRESULT & CALLBACK详解以及游戏中的应用
【C/C++】回调函数详解&注册窗口类&LRESULT & CALLBACK详解以及游戏中的应用
289 0
|
编译器 Android开发 C++
[√]build.gradle,mk,c++预处理宏联动关系
[√]build.gradle,mk,c++预处理宏联动关系
87 0
|
C++
C++宏 #与##的区别
C++宏 #与##的区别
61 0
|
JSON C语言 数据格式
【C/C++】防止不必要的局部宏替换
如何避免和防止宏定义在不必要的位置进行替换
245 0
|
编译器 C语言 C++
C/C++,不废话的宏使用技巧
C/C++,不废话的宏使用技巧
183 0
|
存储 安全 编译器
【为什么】C++中的宏
【为什么】C++中的宏
138 0