目前,当前的x86_64(AMD64)计算机未在布线中实现完整的64位内存空间。因此,可用内存空间相当少(在我自己的机器cat /proc/cpuinfo
中说36 bits physical, 48 bits virtual
)。
如果我们为了问题而假设我们不需要使我们的应用程序可以移植到完整的64位寻址。
然后,我们在指针中有很多空间被有效地浪费掉了。 是否可以使用不可用的空间(用于寻址)来存储更多信息,或者使用相同的数据类型以及是否是标记指针或其他东西的指示符(可能是一个直接的小值而不是指针)? / p>
我认为最突出的用例可能是实现动态语言的运行时,解释器和编译器,但我确信它可以扩展到更多用法。