Saya menemukan poin yang menarik hari ini dalam ulasan tentang Tinjauan Kode . @Veedrac direkomendasikan dalam jawaban ini bahwa tipe ukuran variabel (misalnya int
dan long
) diganti dengan tipe ukuran tetap seperti uint64_t
dan uint32_t
. Kutipan dari komentar jawaban itu:
Ukuran int dan panjang (dan dengan demikian nilai-nilai yang dapat mereka pegang) bergantung pada platform. Di sisi lain, int32_t selalu sepanjang 32 bit. Menggunakan int berarti kode Anda bekerja secara berbeda pada platform yang berbeda, yang umumnya bukan yang Anda inginkan.
Alasan di balik standar tidak memperbaiki tipe umum sebagian dijelaskan di sini oleh @supercat. C ditulis untuk portabel di seluruh arsitektur, bertentangan dengan perakitan yang biasanya digunakan untuk pemrograman sistem pada saat itu.
Saya pikir niat desain awalnya bahwa setiap jenis selain int menjadi hal terkecil yang dapat menangani jumlah berbagai ukuran, dan int itu menjadi ukuran "tujuan umum" paling praktis yang dapat menangani +/- 32767.
Bagi saya, saya selalu menggunakan int
dan tidak terlalu khawatir tentang alternatif. Saya selalu berpikir bahwa ini adalah tipe paling dengan kinerja terbaik, akhir cerita. Satu-satunya tempat yang saya pikir lebar tetap akan berguna adalah ketika menyandikan data untuk penyimpanan atau untuk transfer melalui jaringan. Saya jarang melihat jenis lebar tetap dalam kode yang ditulis oleh orang lain juga.
Apakah saya terjebak di tahun 70-an atau apakah sebenarnya ada alasan untuk menggunakan int
di era C99 dan seterusnya?