2015-04-12 6 views
24

dokümantasyon usize işaretçi boyutlu işaretsiz tamsayılar için"usize" ve "u32" arasındaki fark nedir?

Operasyon ve sabitlerini olduğunu söylüyor.

Çoğu durumda, usize'u u32 ile değiştirebilir ve hiçbir şey olmuyor. Bu yüzden neden bu kadar benzer iki türe ihtiyacımız olduğunu anlamıyorum.

cevap

51

Dokümantasyon boyutu usize olduğu için, gerçek boyutu, programınızı derlediğiniz mimariye bağlıdır. Örneğin, bir 32 bit x86 bilgisayarında, usize = u32, x86_64 bilgisayarlarda, usize = u64.

usize, bir veri yapısında herhangi bir işaretçiyi veya herhangi bir kaymayı tutacak kadar büyük olma garantisini verirken, bazı mimarilerde u32 çok küçük olabilir.

+1

Güvenlik için her zaman 'usize' türünü kullanmalı mıyım? – Vayn

+5

İndeksleri bir bellek yapısında tutuyorsanız, ne yapmak istediğinize bağlı olarak, evet. Düz sayılar için, 'u32' genellikle iyidir. Standart kütüphane her zaman uygun olduğunda 'usize' kullanmaktadır ve pas sessizce bir 'u32'yi bir' usize 'haline getirmeyecektir, bu yüzden ihtiyaç duyduklarında göreceksiniz. – Levans

İlgili konular