C 如何找到地址和数据总线的大小

C 如何找到地址和数据总线的大小,c,cpu-architecture,C,Cpu Architecture,最近我看到这是一个采访中提出的问题 如何在系统中找到地址和数据总线的大小 您可以使用sizeof作为指针来查找sizeof地址 但是我们如何找到数据总线的大小呢?他们两个都一样吗 我不确定你能不能。我最早使用的计算机之一是英特尔8008,它有 只有一条8比特宽的总线;但是地址空间是14位宽。没有任何符合标准的C代码…如果是地址总线,sizeof(pointer)也不一定会告诉您。在我的64位系统上,我通常在指针为32位的情况下运行代码。而“64位”在任何情况下都是对平台机器代码某些属性的描述——

最近我看到这是一个采访中提出的问题

如何在系统中找到地址和数据总线的大小

您可以使用sizeof作为指针来查找sizeof地址


但是我们如何找到数据总线的大小呢?他们两个都一样吗

我不确定你能不能。我最早使用的计算机之一是英特尔8008,它有
只有一条8比特宽的总线;但是地址空间是14位宽。

没有任何符合标准的C代码…如果是地址总线,
sizeof(pointer)
也不一定会告诉您。在我的64位系统上,我通常在指针为32位的情况下运行代码。而“64位”在任何情况下都是对平台机器代码某些属性的描述——相当数量的这些位实际上不会出现在地址总线上,因为没有意义。当可以在系统中安装17179869184 GiB时,当前的软件将能够利用这一点,但目前,支持这一点将是完全没有意义的额外费用。
dmidecode
在linux系统上将读取内置在PC BIOS中的表,其中包括这些详细信息。