Bugün Kod İnceleme üzerine bir incelemede ilginç bir noktaya rastladım . @Veedrac, bu cevapta , değişken ebatlı tiplerin (örneğin int
ve long
) uint64_t
ve gibi sabit ebatlı tiplerle değiştirilmesini önermiştir uint32_t
. Bu cevabın yorumlarından alıntı:
İnt ve long (ve dolayısıyla alabilecekleri) boyutları platforma bağlıdır. Öte yandan, int32_t her zaman 32 bit uzunluğundadır. İnt kullanmak, kodunuzun farklı platformlarda farklı şekilde çalıştığı anlamına gelir; bu genellikle istediğiniz şey değildir.
Standardın ardındaki ortak tiplerin sabitlenmemesinin nedeni burada kısmen süperkatçı tarafından açıklanmıştır. C, genellikle o zamanlar sistem programlaması için kullanılan montajın aksine, mimariler arasında taşınabilir olması için yazılmıştır.
Tasarım amacının aslında int dışındaki her türün, çeşitli ebatlardaki sayıları idare edebilecek en küçük şey olduğu ve +/- 32767'yi kaldırabilecek en pratik "genel amaçlı" ebat olması olduğunu düşünüyorum.
Bana gelince, her zaman kullandım int
ve alternatifler hakkında gerçekten endişelenmedim. Her zaman hikayenin sonu, en iyi performansa sahip en tip olduğunu düşündüm. Sabit genişliğin sabit olacağını düşündüğüm tek yer veri depolamak veya bir ağ üzerinden transfer etmek için kodlama yapmak. Sabit genişlik türlerini nadiren başkaları tarafından yazılmış kodlarda da gördüm.
70'li yıllarda sıkışıp mı kaldım ya da int
C99 ve sonrası dönemde kullanmak için bir neden var mı?