C/C++ té definicions molt fluixes sobre els seus tipus de dades enters bàsics (char short int long i long long). El llenguatge garanteix que poden representar almenys un rang de valors, però qualsevol plataforma en particular (maquinari del sistema operatiu del compilador) pot ser més gran que això.
Un bon exemple és llarg. En una màquina pot ser de 32 bits (el mínim requerit per C). En un altre és de 64 bits. Què feu si voleu un tipus d'enter que tingui precisament 32 bits de llarg? Aquí és on entra int32_t: és un àlies per a qualsevol tipus d'enter que tingui el vostre sistema en particular, que és exactament de 32 bits.
Plantilla:
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.
L'actriu Sai PallaviCPP
// 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; }
Sortida:
administrador de powershell
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
Diferents Variacions
1. Sencer de 8 bits sense signe d'amplada fixa: uint8_t
Significa donar-me un int sense signar exactament de 8 bits.
2. Amplada mínima sense signe enter de 8 bits: uint_least8_t
Significa donar-me el tipus més petit d'int sense signar que tingui almenys 8 bits. Optimitzat per al consum de memòria.
3. Enter de 8 bits sense signe d'amplada mínima més ràpida: uint_fast8_t
Significa donar-me un int sense signar d'almenys 8 bits que farà que el meu programa sigui més ràpid. Pot escollir un tipus de dades més gran a causa de consideracions d'alineació. Optimitzat per a la velocitat.
Per tant, es garanteix que un uint8_t tingui una amplada exacta de 8 bits. Un uint_least8_t és l'enter més petit garantit com a mínim 8 bits d'amplada. Un uint_fast8_t és l'enter més ràpid garantit com a mínim 8 bits d'amplada.
Així, els tipus integrals estesos ens ajuden a escriure portàtil i eficient codi.