C/C++ hat sehr lockere Definitionen für seine grundlegenden ganzzahligen Datentypen (char short int long und long long). Die Sprache garantiert, dass sie zumindest einen bestimmten Wertebereich darstellen können, aber jede bestimmte Plattform (Compiler-Betriebssystem-Hardware) kann größer sein.
Ein gutes Beispiel ist lang. Auf einem Computer könnten es 32 Bit sein (das von C geforderte Minimum). Auf einem anderen sind es 64 Bit. Was machen Sie, wenn Sie einen Integer-Typ benötigen, der genau 32 Bit lang ist? Hier kommt int32_t ins Spiel: Es ist ein Alias für den Integer-Typ Ihres speziellen Systems, der genau 32 Bit groß ist.
Vorlage:
Zeichenfolge in char Java
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; }
Ausgabe:
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
Verschiedene Variationen
1. Vorzeichenlose 8-Bit-Ganzzahl mit fester Breite: uint8_t
Das heißt, gib mir ein vorzeichenloses Int von genau 8 Bit.
2. Mindestbreite vorzeichenloser 8-Bit-Integer: uint_least8_t
Das heißt, geben Sie mir den kleinsten Typ von vorzeichenlosem Int, der mindestens 8 Bit hat. Optimiert für den Speicherverbrauch.
3. Schnellste vorzeichenlose 8-Bit-Ganzzahl mit minimaler Breite: uint_fast8_t
Das bedeutet, dass Sie mir ein vorzeichenloses Int von mindestens 8 Bit geben müssen, was mein Programm schneller macht. Aufgrund von Ausrichtungsüberlegungen wird möglicherweise ein größerer Datentyp ausgewählt. Auf Geschwindigkeit optimiert.
Somit ist ein uint8_t garantiert genau 8 Bit breit. Ein uint_least8_t ist die kleinste Ganzzahl, die garantiert mindestens 8 Bit breit ist. Ein uint_fast8_t ist die schnellste Ganzzahl, die garantiert mindestens 8 Bit breit ist.
Die erweiterten Integraltypen helfen uns also beim Schreiben tragbar Und effizient Code.