加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 手柄的尺寸是多少?

发布时间:2020-12-16 10:10:24 所属栏目:百科 来源:网络整理
导读:对于练习,我看一下STARTUPINFO结构.如您所见,最后3个元素的类型为HANDLE. 所以我想知道HANDLE的尺寸.有人知道HANDLE的大小吗? 解决方法 Windows HANDLE类型不是完全不透明的类型. Windows定义了一些您可以依赖的属性.主要问题是你的问题的答案:它总是类型
对于练习,我看一下STARTUPINFO结构.如您所见,最后3个元素的类型为HANDLE.

所以我想知道HANDLE的尺寸.有人知道HANDLE的大小吗?

解决方法

Windows HANDLE类型不是完全不透明的类型. Windows定义了一些您可以依赖的属性.主要问题是你的问题的答案:它总是类型为void *.从MSDN上的 Windows Data Types条目:

HANDLE

A handle to an object.

This type is declared in WinNT.h as follows:

typedef PVOID HANDLE;

在表格的后面,您可以看到PVOID被定义为void *.

所以HANDLE与void *的大小相同.或者换句话说,使用32位编译器时为32位,使用64位编译器时为64位.您不需要在代码中硬编码这些值,而只需使用sizeof(HANDLE).

Windows HANDLE类型的另一个属性非常模糊,几乎没有记录:对于内核句柄the bottom two bits are always zero.您不需要在代码中依赖于此,并希望您可以看到您永远不会想要的.我提到这一点是为了完整性,并强调微软如何定义HANDLE不仅仅是一个内部实现细节.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读