What's the difference between `usize` and `u32`?

前端 未结 2 646
执笔经年
执笔经年 2020-12-13 11:57

The documentation says usize is

Operations and constants for pointer-sized unsigned integers.

In most cases, I can

相关标签:
2条回答
  • 2020-12-13 12:26

    As the documentation states usize is pointer-sized, thus its actual size depends on the architecture your are compiling your program for.

    As an example, on a 32 bit x86 computer, usize = u32, while on x86_64 computers, usize = u64.

    usize gives you the guarantee to be always big enough to hold any pointer or any offset in a data structure, while u32 can be too small on some architectures.

    0 讨论(0)
  • 2020-12-13 12:46

    Adding to @Levans' answer,

    The size of usize is depended on how much size it takes to reference any location in memory.

    on a 32 bit target usize is 4 bytes and on a 64 bit target usize is 8 bytes

    0 讨论(0)
提交回复
热议问题