长数据类型的大小在32位& 64位编译器

时间:2016-11-24 16:10:06

标签: c operating-system

64位编译器上长数据类型的大小发生了变化。在32位编译器上,int& long有4个字节大小。而在64位中,它变为4& 8个字节。为什么会有这种差异?

1 个答案:

答案 0 :(得分:-2)

决定数据大小(位数)的因素是微控制器内部寄存器的宽度。
软件总是落后于硬件,并且你有一个64位处理器并使用32位编译器甚至16位编译器编译你的程序并不罕见(我仍然在64-上运行16位软件)位处理器)。

理想情况是当您拥有一个具有功能目标的编译器以获得您拥有的处理器的全部功能时。

今天,尽管大多数计算机都有64位处理器,但并非所有编译器都准备好使用全部硬件电源。

根据微软的说法,他们的工具继续区分32到64位代码,只是在指针的宽度上,并保持数据的宽度。

但是,没有什么能阻止您使用充分利用处理器内部寄存器的64位的编译器。