c – 手柄的尺寸是多少?

c – 手柄的尺寸是多少?,第1张

概述对于练习,我看一下STARTUPINFO结构.如您所见,最后3个元素的类型为HANDLE. 所以我想知道HANDLE的尺寸.有人知道HANDLE的大小吗? Windows HANDLE类型不是完全不透明的类型. Windows定义了一些您可以依赖的属性.主要问题是你的问题的答案:它总是类型为void *.从MSDN上的 Windows Data Types条目: HANDLE A handle t 对于练习,我看一下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不仅仅是一个内部实现细节.

总结

以上是内存溢出为你收集整理的c – 手柄的尺寸是多少?全部内容,希望文章能够帮你解决c – 手柄的尺寸是多少?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1218125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存