开发者社区> eddie小英俊> 正文

C++它 typedef void *HANDLE

简介:
+关注继续查看

阅读时编写代码的代码,经常看到一个代码: typedef void *HANDLE ,这是它背后的故事?怎么理解呢?

不明白的时候。这是非常美妙的感觉,后来我才知道这,这是typedef定义,就在void*键入罢了。那是,HANDLE相当于void *,们能够叫它披着句柄皮的指针(PS:指针和句柄是有差别的,在这说句废话);

对于void* 神通广大。由于它作为函数參数or函数返回值,可以接受不论什么类型的指针;也就是来者不拒,是指针就接受(so open ,Aha)。但应用的时候。应该注意,void * 必须指向详细的类型。比如:

                               void * HappyPt;
                                int* pi=static_cast<int*>HappyPt;; //注意喽,在这里详细到了int*哦!

详细使用方法例如以下所看到的:

1.还记得它吗?

void *  __cdecl memset(_Out_opt_bytecapcount_(_Size) void * _Dst, _In_ int _Val, _In_ size_t _Size);

这是memset这个函数的原型,在这里你能够毫不留情的把void* 换成HANDLE,memset就是为了将传递进来的地址開始的n个字节的值所有赋值成某个特定的值,所以不是必需知道是什么类型的指针。就用void类型指针取代了。

用作參数的时候,我们一般不关心传递进来的地址类型;

    用作返回值的时候。通常是返回一个地址,至于这个地址你要做什么用那是你决定的。最常见的就是malloc了,它返回void类型指针作为分配好的内存区的首地址。至于是什么类型,就须要用户自己来指定了。

演示样例

typedef void *HANDLE;
HANDLE m_exitThreadEvent; 
m_exitThreadEvent = CreateEvent(NULL,FALSE,FALSE,NULL);


HANDLE CreateEvent(
  LPSECURITY_ATTRIBUTES lpEventAttributes, 
  BOOL bManualReset, 
  BOOL bInitialState, 
  LPTSTR lpName 
);









本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4654763.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【重学C/C++系列(八)】:如何理解C++中的void*?
首先void*中的void代表一个任意的数据类型,"星号"代表一个指针,所以其就是一个任意数据类型的指针。
80 0
自定义C++ void swap(int& ra, int * pb)函数
这是一个软考和c++考试的一个经典面试题,给出5空,然后了,检测swap函数怎么写,主要考察的就是对于指针与引用的理解,难点为,很多人都不知道第三空填啥,因为我们通常写的c++的swap函数没有这一行,下面给出我的答案。
36 0
C及C++中typedef的简单使用指南
  又是在学数据结构的时候,发现了之前学习的知识遗忘很多,在发现对C/C++中关键字typedef的理解还是没有到位后,我翻阅了学C++用到的课本,又问了度娘,也看了不少关于typedef用法的博客。于是我就想把我理解的东西整理下来。
611 0
C/C++使用VOID指针保存结构体数据到二进制文件并且读取
只是演示,细节没有过多注意 程序如下: 主程序: /*************************************************************************   > File Name: change.
1064 0
关于C/C++ void指针,使用void指针拷贝int 数组
在C/C++中void代表的就是无类型或者为空,作为void *p这样的定义则说明这个指针 只包含了指针位置而不包含指针的类型,一般的指针包含2个属性指针位置和类型, 其中类型就能判断出其长度。
1400 0
+关注
eddie小英俊
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
GPON Class C++ SFP OLT Transce
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载