gpt4 book ai didi

c++ - 有人可以解释为什么 int 会根据系统架构呈现不同的大小吗?

转载 作者:行者123 更新时间:2023-11-30 02:54:52 45 4
gpt4 key购买 nike

街上的说法是 int 的大小取决于系统架构(我假设它专门指的是处理器架构,尽管我可能是错的)。当尝试在较新的处理器上运行旧软件时,或者随着处理器的总体变化,这似乎是一个非常脆弱的设置。将整数大小与系统架构 Hook 的动机是什么?

也是一个(相关的)后续问题。具有 IA-32 架构的系统如何达到大于 4G 的内存地址?

最佳答案

不同的 CPU 有不同的设计约束。例如,晶体管在 80 年代成本更高,因为一些芯片只实现了 16 位 cpu 字。为了提高效率,将制作一个 int 来匹配它。较新的 CPU 具有更高的晶体管数量,成本更低,因此在添加小数字时“浪费”一些来传递所有那些高阶 0 的成本更低。在较新的 CPU 中,32 位或什至 64 位整数的问题较少。

将专用 CPU 添加到组合中,它会变得非常复杂。我听说过用于声音和视频处理的 24 位和 48 位 CPU。我自己没有见过它们,但编写代码以使其与字长无关并不难,理论上芯片可能存在。

有关详细信息,请参阅:http://en.wikipedia.org/wiki/Word_(computer_architecture)

物理地址扩展 (PAE) 是一种 CPU 扩展,允许开发人员通过 CPU 指令访问更多内存。它保留了一个内存地址表,该表引用了内存的较高区域。它在实践中产生了双指针取消引用的成本,当您考虑 RAM 和 L2 缓存的速度时,这通常比使用交换空间或其他磁盘缓冲区更可取。维基百科上有一个不错的页面:http://en.wikipedia.org/wiki/Physical_Address_Extension

关于c++ - 有人可以解释为什么 int 会根据系统架构呈现不同的大小吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16794008/

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