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 <stdio.h>
#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.

Weitere Erweiterungen