What is uintptr_t
它可以用来做什么?
首先,在提出问题时,uintptr_t
不是用C++写的。它在 C99 中,在<stdint.h>
,作为可选类型。许多 C++03 编译器确实提供了该文件。它也在 C++11 中,在<cstdint>
,其中它也是可选的,并且它引用 C99 的定义。
在C99中,它被定义为“一种无符号整数类型,具有任何有效的指向void的指针都可以转换为该类型,然后转换回指向void的指针,并且结果将与原始指针进行比较的属性”。
请理解它所说的意思。它没有提及任何有关尺寸的信息。
uintptr_t
可能与一个大小相同void*
。它可能更大。可以想象,它可以更小,尽管这样的 C++ 实现方式有悖常理。例如在一些假设的平台上void*
是32位,但只使用24位虚拟地址空间,你可以有一个24位uintptr_t
满足要求。我不知道为什么实现会这样做,但标准允许这样做。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)