Подтвердить что ты не робот

Какая разница между `usize` и` u32`?

В документации указано usize

Операции и константы для целых чисел без знака указателя.

В большинстве случаев я могу заменить usize на u32, и ничего не происходит. Поэтому я не понимаю, почему нам нужны два типа, которые настолько похожи.

4b9b3361

Ответ 1

Как указано в документации usize размер указателя, поэтому его фактический размер зависит от архитектуры вашей компиляции вашей программы.

В качестве примера, на 32-битном компьютере x86, usize = u32, а на компьютерах x86_64, usize = u64.

usize дает вам гарантию быть всегда достаточно большой, чтобы удерживать любой указатель или любое смещение в структуре данных, а u32 может быть слишком маленьким на некоторых архитектурах.