C/C++'ın temel tam sayı veri türlerinde (char short int long ve long long) çok gevşek tanımları vardır. Dil, bunların en azından bazı değer aralıklarını temsil edebileceğini garanti eder ancak herhangi bir belirli platform (derleyici işletim sistemi donanımı) bundan daha büyük olabilir.
İyi bir örnek uzundur. Bir makinede 32 bit olabilir (C'nin gerektirdiği minimum değer). Diğerinde 64 bit. Tam olarak 32 bit uzunluğunda bir tam sayı türü istiyorsanız ne yaparsınız? İşte int32_t burada devreye giriyor: sisteminizin sahip olduğu tam sayı türü ne olursa olsun, tam olarak 32 bit olan bir takma addır.
Şablon:
intN_t or uintN_t Where N is width of integer which can be 8 16 32 64 or any other type width supported by the library.
CPP
// C++ program to show use of extended integral types #include using namespace std; int main() { uint8_t i; // i with width of exact 8 bits // Minimum value represented by unsigned 8 bit is 0 i = 0; cout << "Minimum value of it: "<< (int)i << endl; // Maximum value represented by unsigned 8 bit is 255 i = 255; cout << "Maximum value of it: "<< (int)i << endl; // Warning: large integer implicitly truncated to // unsigned type. It will print any garbage value i = 2436; cout << "Beyond range value of it: " << (int)i << endl; return 0; }
Çıkış:
In function 'int main()': 19:7: warning : large integer implicitly truncated to unsigned type [-overflow] i = 2436; ^ Minimum value of i : 0 Maximum value of i : 255 Beyond range value of i : 132
Farklı Varyasyonlar
1. Sabit genişlikte işaretsiz 8 bitlik tamsayı: uint8_t
Bu bana tam olarak 8 bitlik imzasız bir int ver anlamına geliyor.
2. Minimum genişlik işaretsiz 8 bitlik tamsayı: uint_least8_t
Bu bana en az 8 bitlik en küçük imzasız int türünü ver anlamına geliyor. Bellek tüketimi için optimize edilmiştir.
3. En hızlı minimum genişlikte işaretsiz 8 bitlik tamsayı: uint_fast8_t
Bu bana programımı daha hızlı hale getirecek en az 8 bitlik imzasız bir int ver anlamına geliyor. Hizalama hususları nedeniyle daha büyük veri türünü seçebilir. Hız için optimize edildi.
Böylece bir uint8_t'nin tam olarak 8 bit genişliğinde olması garanti edilir. uint_least8_t, en az 8 bit genişliğinde olması garanti edilen en küçük tam sayıdır. Bir uint_fast8_t, en az 8 bit genişliğinde olması garanti edilen en hızlı tam sayıdır.
Genişletilmiş integral türleri yazmada bize yardımcı olur taşınabilir Ve verimli kod.