gpt4 book ai didi

c++ - 在 Linux 上,在 C/C++ 中,指针是否会设置 MSB?

转载 作者:IT王子 更新时间:2023-10-29 00:46:41 25 4
gpt4 key购买 nike

我想使用一个长整数,在设置 MSB 时将其解释为数字,否则它将被解释为指针。那么这是否可行,或者我会在 C 或 C++ 中遇到问题?

这是在 64 位系统上。

为清楚起见和更好的描述进行了编辑。

最佳答案

在 x86-64 上,您将有一个地址中超过 47 位的指针设置了第 63 位,因为“体系结构支持的最大位数”(当前为 48)以上的所有位都必须具有与值本身的最高有效位相同的值。 (这是 0007 FFFF FFFF FFFF 以上的任何地址都将是 FFF8 0000 0000 0000 - 介于两者之间的所有内容作为指针都是“无效的”)

这很可能是仅供内核使用的地址,但我不确定一定是。

但是,我会尽量避免使用这样的技巧 - 它可能会在某个时候回来困扰你。

关于c++ - 在 Linux 上,在 C/C++ 中,指针是否会设置 MSB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16658179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com