Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
考虑到int在 32 位系统上是 4 个字节,在 64 位系统上是 8 个字节,为什么float不一样对待?为什么在 64 位系统上 a 的大小是double!= a的大小?float考虑到当我声明一个时选择了最好的本机整数类型int(这会导致更高的性能),不应该发生同样的情况float(这也会导致性能提高)吗?
int
float
double
相关问题:在 32 位系统和64 位系统上声明一个类型my_float(请原谅这个名字!)是一个坏主意吗?floatdouble
my_float
你的问题是基于一个错误的前提。在大多数现代 64 位系统上,int仍然是 4 个字节。当很少需要这么大的整数时,为什么要消耗两倍的内存和两倍的内存带宽?在典型的现代 64 位系统上,64 位整数的数学运算并不比 32 位整数的数学运算快,因此没有任何好处。