int
Bir değeri saklamak için bir tür kullanıyorum . Programın anlambilimiyle, değer her zaman çok küçük bir aralıkta değişir (0 - 36) ve int
(a değil char
) yalnızca CPU verimliliği nedeniyle kullanılır.
Bu kadar az sayıda tamsayı üzerinde birçok özel aritmetik optimizasyon yapılabiliyor gibi görünüyor. Bu tamsayılardaki birçok işlev çağrısı, küçük bir "büyülü" işlem kümesine optimize edilebilir ve hatta bazı işlevler tablo aramaları haline getirilebilir.
Peki, derleyiciye bunun int
her zaman küçük aralıkta olduğunu söylemek mümkün mü ve derleyicinin bu optimizasyonları yapması mümkün mü?
unsigned
, derleyicinin akıl yürütmesi daha kolay olduğu için türleri kullanmak için küçük kazançlarınız olabileceğini unutmayın .
int
ve unsigned int
64 bit işaretçileri olan çoğu sistemde de 32'den 64 bit'e işaret ya da sıfır genişletilmesi gerekiyor. X86-64'te, 32-bit kayıtlarda yapılan işlemlerin sıfır-64'e 64-bit için ücretsiz olduğunu unutmayın (işaret genişletme değil, ancak imzalı taşma tanımsız bir davranıştır, bu nedenle derleyici isterse 64 bit imzalı matematik kullanabilir). Bu nedenle, hesaplama sonuçlarını değil, yalnızca 32 bit işlev bağımsız değişkenlerini sıfırlamak için ek yönergeler görürsünüz. Daha dar işaretsiz tipler için kullanılır.