我想使用一个长整数,当设置MSB时它将被解释为数字,否则它将被解释为指针.那么这项工作还是会在C或C中遇到问题?这是在64位系统上.编辑清晰和更好的描述.解决方法:在x86-64上,你将有一个超过47位的指针,其地址设置为...

我想使用一个长整数,当设置MSB时它将被解释为数字,否则它将被解释为指针.那么这项工作还是会在C或C中遇到问题?
这是在64位系统上.
编辑清晰和更好的描述.
解决方法:
在x86-64上,你将有一个超过47位的指针,其地址设置为第63位,因为“架构支持的最大位数”(当前为48位)以上的所有位都必须具有相同的值作为价值本身最重要的一点. (这是0007以上的任何地址FFFF FFFF FFFF将是FFF8 0000 0000 0000 – 其间的所有内容都是“无效”作为指针)
这可能只是内核使用的地址,但我不确定它是否可以保证.
但是,我会尽量避免使用这样的技巧 – 它可能会在某些时候回来困扰你.
沃梦达教程
本文标题为:在Linux上,在C/C++中,指针是否会有MSB设置?


基础教程推荐
猜你喜欢
- 如何C++使用模板特化功能 2023-03-05
- C++使用easyX库实现三星环绕效果流程详解 2023-06-26
- C语言基础全局变量与局部变量教程详解 2022-12-31
- C++中的atoi 函数简介 2023-01-05
- C语言 structural body结构体详解用法 2022-12-06
- 详解c# Emit技术 2023-03-25
- 一文带你了解C++中的字符替换方法 2023-07-20
- C利用语言实现数据结构之队列 2022-11-22
- C++详细实现完整图书管理功能 2023-04-04
- C/C++编程中const的使用详解 2023-03-26