C-Standardbibliothek<stdint.h>
<stdint.h>Ist eine Header-Datei, die durch den C99-Standard eingeführt wurde. Sie bietet Definitionen für mehrere Ganzzahltypen, die explizite Größen- und Vorzeichenattribute aufweisen, um Konsistenz über verschiedene Plattformen hinweg zu gewährleisten.
<stdint.h>Die Bibliothek soll das Problem uneinheitlicher Größen von Ganzzahltypen auf verschiedenen Plattformen in C beheben und dadurch die Portabilität und Wartbarkeit des Codes verbessern.
<stdint.h>Wird hauptsächlich verwendet, um Ganzzahltypen mit fester Größe, die Minimal-/Maximalwerte von Ganzzahltypen und Typqualifizierer für Ganzzahltypen zu definieren. Dadurch wird vermieden, sich auf compiler- oder OS-plattformspezifische Ganzzahlgrößen zu verlassen.
<stdint.h>Durch die Bereitstellung von Ganzzahltypen mit fester Breite und zugehörigen Makros können Programmierer die erforderliche Ganzzahlgröße explizit angeben, ohne sich auf Implementierungsdetails der Plattform zu verlassen.
<stdint.h>Der Hauptzweck ist:
Bietet Ganzzahltypen mit fester Breite (wie z. B.
int8_t、int16_tusw.), wodurch sichergestellt wird, dass ihre Größen über verschiedene Plattformen hinweg einheitlich sind.Definiert plattformunabhängige Ganzzahltypen (wie z. B.
int_least8_t、int_fast16_tusw.), die verwendet werden, um Leistung und Speicherverbrauch zu optimieren.Bietet Ganzzahltypen mit maximaler Breite (wie z. B.
intmax_t、uintmax_t), die verwendet werden, um die größtmögliche Ganzzahl darzustellen.
Ganzzahltypen mit fester Breite
Diese Typen geben ihre Breite (Anzahl der Bits) explizit an und stellen sicher, dass sie auf verschiedenen Plattformen dieselbe Größe haben.
| Type | Beschreibung |
|---|---|
int8_t |
8-Bit-Ganzzahl mit Vorzeichen |
int16_t |
16-Bit-Ganzzahl mit Vorzeichen |
int32_t |
32-Bit-Ganzzahl mit Vorzeichen |
int64_t |
64-Bit-Ganzzahl mit Vorzeichen |
uint8_t |
8-Bit-Ganzzahl ohne Vorzeichen |
uint16_t |
16-Bit-Ganzzahl ohne Vorzeichen |
uint32_t |
32-Bit-Ganzzahl ohne Vorzeichen |
uint64_t |
64-Bit-Ganzzahl ohne Vorzeichen |
Hinweis:
-
Wenn eine Plattform einen bestimmten Typ mit fester Breite nicht unterstützt, wird dieser Typ nicht definiert.
Integer-Typen mit minimaler Breite
Diese Typen haben mindestens die angegebene Breite, können aber größer sein.
| Type | Beschreibung |
|---|---|
int_least8_t |
Vorzeichenbehaftete Ganzzahl mit mindestens 8 Bit |
int_least16_t |
Vorzeichenbehaftete Ganzzahl mit mindestens 16 Bit |
int_least32_t |
Vorzeichenbehaftete Ganzzahl mit mindestens 32 Bit |
int_least64_t |
Vorzeichenbehaftete Ganzzahl mit mindestens 64 Bit |
uint_least8_t |
Vorzeichenlose Ganzzahl mit mindestens 8 Bit |
uint_least16_t |
Vorzeichenlose Ganzzahl mit mindestens 16 Bit |
uint_least32_t |
Vorzeichenlose Ganzzahl mit mindestens 32 Bits |
uint_least64_t |
Vorzeichenlose Ganzzahl mit mindestens 64 Bits |
Schnellste Ganzzahltypen mit Mindestbreite
Diese Typen sind die schnellsten Ganzzahltypen mit der angegebenen Breite und werden typischerweise zur Leistungsoptimierung verwendet.
| Type | Beschreibung |
|---|---|
int_fast8_t |
Schnellste vorzeichenbehaftete Ganzzahl mit mindestens 8 Bits |
int_fast16_t |
Schnellste vorzeichenbehaftete Ganzzahl mit mindestens 16 Bits |
int_fast32_t |
Schnellste vorzeichenbehaftete Ganzzahl mit mindestens 32 Bits |
int_fast64_t |
Schnellste vorzeichenbehaftete Ganzzahl mit mindestens 64 Bits |
uint_fast8_t |
Schnellste vorzeichenlose Ganzzahl mit mindestens 8 Bits |
uint_fast16_t |
Schnellste vorzeichenlose Ganzzahl mit mindestens 16 Bits |
uint_fast32_t |
Schnellste vorzeichenlose Ganzzahl mit mindestens 32 Bits |
uint_fast64_t |
Schnellste vorzeichenlose Ganzzahl mit mindestens 64 Bits |
Ganzzahltypen mit maximaler Breite
Diese Typen werden verwendet, um die größtmöglichen Ganzzahlwerte darzustellen.
| Type | Beschreibung |
|---|---|
intmax_t |
Vorzeichenbehaftete Ganzzahl mit maximaler Breite |
uintmax_t |
Vorzeichenlose Ganzzahl mit maximaler Breite |
Ganzzahltypen mit Zeigerbreite
Diese Typen werden verwendet, um Ganzzahlen mit Zeigergröße darzustellen.
| Type | Beschreibung |
|---|---|
intptr_t |
Vorzeichenbehaftete Ganzzahl, die einen Zeiger aufnehmen kann |
uintptr_t |
Vorzeichenlose Ganzzahl, die einen Zeiger aufnehmen kann |
Makrodefinition
<stdint.h>Außerdem definiert es Makros zur Darstellung der maximalen und minimalen Werte bestimmter Typen.
| Makro | Beschreibung |
|---|---|
INT8_MIN |
int8_tminimaler Wert von |
INT8_MAX |
int8_tmaximaler Wert von |
UINT8_MAX |
uint8_tmaximaler Wert von |
INT16_MIN |
int16_tminimaler Wert von |
INT16_MAX |
int16_tmaximaler Wert von |
UINT16_MAX |
uint16_tmaximaler Wert von |
INT32_MIN |
int32_tminimaler Wert von |
INT32_MAX |
int32_tmaximaler Wert von |
UINT32_MAX |
uint32_tmaximaler Wert von |
INT64_MIN |
int64_tminimaler Wert von |
INT64_MAX |
int64_tmaximaler Wert von |
UINT64_MAX |
uint64_tmaximaler Wert von |
INTMAX_MIN |
intmax_tminimaler Wert von |
INTMAX_MAX |
intmax_tmaximaler Wert von |
UINTMAX_MAX |
uintmax_tmaximaler Wert von |
Beispiel
Das Folgende ist eine Verwendung von<stdint.h>Beispiel:
Beispiel
#include <stdint.h>
int main() {
// Ganzzahltypen mit fester Breite
int32_t a = 100;
uint64_t b = 1000000000000ULL;
// Ganzzahltypen mit minimaler Breite
int_least16_t c = 200;
// Schnellste Ganzzahltypen mit minimaler Breite
int_fast32_t d = 300;
// Ganzzahltypen mit maximaler Breite
intmax_t e = INTMAX_MAX;
// Ausgabewert
printf("a = %d\n", a);
printf("b = %llu\n", b);
printf("c = %d\n", c);
printf("d = %d\n", d);
printf("e = %jd\n", e);
return 0;
}
Hinweise
<stdint.h>Nur in C99 und späteren Versionen verfügbar.Typen mit fester Breite (wie z. B.
int32_t) sind möglicherweise auf einigen Plattformen nicht verfügbar; daher sollten Sie prüfen, ob er definiert ist, bevor Sie ihn verwenden.Nutzung
<stdint.h>Es kann die Code-Portabilität verbessern, insbesondere in Szenarien, die eine präzise Kontrolle über Integer-Größen erfordern.