DECLARE_HANDLE宏解析
来源:互联网 发布:中国征兵人口数据 编辑:程序博客网 时间:2024/06/07 01:39
在MFC源码中,经常看到这样的语句:
DECLARE_HANDLE(HDRVR);
DECLARE_HANDLE(HDTRCV);
查看DECLARE_HANDLE定义如下:
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) \
struct name##__ { int unused; };\
typedef struct name##__ *name\
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
默认情况下,VC/VS是开启STRICT的,在这种情况下相当于先定义了一个结构:
struct name##__
{
int unused;
}
typedef struct name##__ *name其实就相当于定义了一个指向结构体name__的指针类型name。
在非STRICT的情况下,定义name 为HANDLE类型。其实HANDLE 也是一个指针类型。
则DECLARE_HANDLE(HDRVR);DECLARE_HANDLE(HDTRCV);是声明HDRVR和HDTRCV 为一个指针类型。
DECLARE_HANDLE(HDRVR);
DECLARE_HANDLE(HDTRCV);
查看DECLARE_HANDLE定义如下:
#ifdef STRICT
typedef void *HANDLE;
#define DECLARE_HANDLE(name) \
struct name##__ { int unused; };\
typedef struct name##__ *name\
#else
typedef PVOID HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
#endif
默认情况下,VC/VS是开启STRICT的,在这种情况下相当于先定义了一个结构:
struct name##__
{
int unused;
}
typedef struct name##__ *name其实就相当于定义了一个指向结构体name__的指针类型name。
在非STRICT的情况下,定义name 为HANDLE类型。其实HANDLE 也是一个指针类型。
则DECLARE_HANDLE(HDRVR);DECLARE_HANDLE(HDTRCV);是声明HDRVR和HDTRCV 为一个指针类型。
阅读全文
0 0
- DECLARE_HANDLE 宏解析
- DECLARE_HANDLE宏解析
- DECLARE_HANDLE 宏解析 句柄的本质 / 句柄是什么
- DECLARE_HANDLE()
- win32 DECLARE_HANDLE
- 深入讨论DECLARE_HANDLE(HINSTANCE)
- 深入讨论DECLARE_HANDLE(HINSTANCE)
- #pragma宏解析
- container_of()宏的解析
- container_of宏定义 解析
- container_of()宏解析
- 预处理 ----解析宏开关
- offsetof宏解析
- QObject宏的解析
- offsetof宏解析
- 深入解析U_BOOT_CMD宏
- C宏定义解析
- #pragma宏解析
- 【jmeter-maven-plugin】五、修改属性
- (接上一篇)二叉树的基本应用举例
- 统计学习方法 第1章 统计学习方法概论
- React学习笔记_dotomvc例子
- hive UDF自定义函数 map处理
- DECLARE_HANDLE宏解析
- MySQL中多表删除方法
- Postman使用官方文档翻译--18脚本语言转换
- FPGA学习笔记1——VGA显示
- Netty学习-非常好的博客
- layer弹窗的一些样式问题
- 64位Linux下安装mysql-5.7.13-linux-glibc2.5-x86_64
- javaScript的window.open()用法
- squid 3 配置LDAP及简单用户认证