‘ usize’和‘ u32’有什么区别?

文件上说 usize

指针大小的无符号整数的操作和常数。

在大多数情况下,我可以用 u32代替 usize,但什么也不会发生。所以我不明白为什么我们需要两种如此相似的类型。

38549 次浏览

由于 文件说明 usize是指针大小的,因此它的实际大小取决于您编译程序所使用的体系结构。

例如,在32位 x86计算机 usize = u32上,而在 x86 _ 64计算机 usize = u64上。

usize保证总是足够大以容纳数据结构中的任何指针或任何偏移量,而 u32在某些架构中可能太小。

加上@Levans 的回答,

usize的大小取决于引用内存中任何位置所需的大小。

在32位目标 usize上是4字节,在64位目标 usize上是8字节