gpt4 book ai didi

c - 使用 C 确定地址线的数量和 RAM 字的大小

转载 作者:太空宇宙 更新时间:2023-11-04 02:14:22 25 4
gpt4 key购买 nike

谁能告诉我如何使用 C 确定处理器中的地址线数?这不能等于处理器寄存器的大小,因为地址线的数量可能与寄存器的大小不同(例如,在 8086 中,地址线是 20,而寄存器的大小是 16)。

同样,我们能否通过C程序求出RAM的字长(即每个可寻址位置的大小)?

最佳答案

对几乎所有这些问题的简短回答是(至少以一种真正由 C 本身定义的可移植方式)你不能。

例如,地址行是一个特别困难的问题。举个例子,相当多的 DSP 有两个甚至三个完全独立的地址空间,这些地址空间连接到相同数量的物理内存 channel ——并且每个地址空间都可能具有唯一的大小。除此之外,即使处理器上有 N 条地址线,内存也可能(而且通常会)比实际连接的少。

也就是说,sizeof(void *) * CHAR_BIT 通常至少会给出地址行数的合理近似值——至少是体系结构理论上允许的数量,尽管可寻址内存可能会有所不同。

标准说 int 应该是“处理器建议的自然大小”。通常(但绝对不总是)这与处理器整数寄存器的大小相同。

关于c - 使用 C 确定地址线的数量和 RAM 字的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9775681/

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