【发布时间】:2014-03-25 03:51:42
【问题描述】:
我只是想知道,通过说 32 位机器和 64 位机器,机器中的 32(64)位究竟是什么,因此我们将其定义为 32(64)位机器。由于我目前正在学习 C,我发现指针和内存之间的关系很好地解释了这一点。由于一个内存地址指向一个字节,所以如果内存地址由 32 位组成(即一个指针是 4 个字节),它最多可以有 2^32 种可能性,也就是说它最多可以表示 2^32 个字节导致 32 位机器最多支持 4GB RAM。这是公平的假设吗?那么32位机还是64位机是由其内存地址大小来定义的呢?
此外,如果一台机器是 32 位的,那台机器上的 C 中的指针是否总是 4 字节(32 位)?
【问题讨论】:
-
@SLaks 我读过它,所以如果一台机器是 32 位的,那么指针是否也总是 32 位?我看不到 int 等其他数据类型与机器架构之间的这种关系,但我很好奇 C 中的指针与机器架构之间是否存在这种对应关系
-
以 8088 为例:它结合了两个 16 位寄存器以创建一个 20 位地址,该地址在 8 位总线上输出到内存。突然间,“指针”和“地址”的定义变得有点模糊……近指针还是远指针? ;)
标签: c architecture 32bit-64bit