考虑到int
在32位系统上是4个字节,在64位系统上是8个字节,为什么float
不被视为相同?为什么64位系统上的double
!= float
大小?考虑到当我声明int
(导致higher performance)时选择了最佳的原生整数类型,float
不应该发生相同的情况(这也会导致性能提升) ?
相关问题:声明类型my_float
(请原谅名称!)在32位系统上float
和64位系统上double
是不是一个坏主意?
答案 0 :(得分:22)
您的问题基于错误的前提。在大多数现代64位系统中,int
仍然是4个字节。当如此大的整数很少需要时,为什么要消耗两倍的内存和两倍的内存带宽?在典型的现代64位系统中,64位整数上的数学运算并不比32位整数上的数学运算快,因此没有任何好处。