C-Standardbibliothek -<limits.h>

Einführung

<limits.h>ist eine Header-Datei in der C-Standardbibliothek, die Grenzwerte für verschiedene Datentypen definiert. Diese Makros liefern Informationen über Ganzzahltypen (char、short、int、longundlong longusw.) sowie die Maximal- und Minimalwerte anderer Datentypen.

Diese Grenzen legen fest, dass Variablen keine Werte über diese Grenzen hinaus speichern können; zum Beispiel kann ein unsigned maximal den Wert 255 speichern.

Bibliotheksmakros

Die folgenden Werte sind implementierungsabhängig und werden über die #define-Direktive definiert; diese Werte dürfen nicht niedriger als die unten angegebenen Werte sein.

Makro Beschreibung Wert
Zeichentypen
CHAR_BIT charAnzahl der Bits des Typs Normalerweise 8
CHAR_MIN charMinimalwert eines Typs (signed oder unsigned) -128 oder 0
CHAR_MAX charMaximalwert eines Typs (signed oder unsigned) 127 oder 255
SCHAR_MIN signed charMinimalwert des Typs -128
SCHAR_MAX signed charMaximalwert des Typs 127
UCHAR_MAX unsigned charMaximalwert des Typs 255
Kurzer Ganzzahltyp
SHRT_MIN shortMinimalwert des Typs -32768
SHRT_MAX shortMaximalwert des Typs 32767
USHRT_MAX unsigned shortMaximalwert des Typs 65535
Ganzzahltypen
INT_MIN intMinimalwert des Typs -2147483648
INT_MAX intMaximalwert des Typs 2147483647
UINT_MAX unsigned intMaximalwert des Typs 4294967295
Langer Ganzzahltyp
LONG_MIN longMinimalwert des Typs -9223372036854775808L
LONG_MAX longMaximalwert des Typs 9223372036854775807L
ULONG_MAX unsigned longMaximalwert des Typs 18446744073709551615UL
Long-Long-Ganzzahltyp
LLONG_MIN long longMinimalwert des Typs -9223372036854775808LL
LLONG_MAX long longMaximalwert des Typs 9223372036854775807LL
ULLONG_MAX unsigned long longMaximalwert des Typs 18446744073709551615ULL

Beispiel

Das folgende Beispiel demonstriert die Verwendung einiger Konstanten, die in der Datei limit.h definiert sind.

Beispiel

#include <stdio.h>
#include <limits.h>

int main() {
    printf("Zeichentypen:\n");
    printf("CHAR_BIT: %d\n", CHAR_BIT);
    printf("CHAR_MIN: %d\n", CHAR_MIN);
    printf("CHAR_MAX: %d\n", CHAR_MAX);
    printf("SCHAR_MIN: %d\n", SCHAR_MIN);
    printf("SCHAR_MAX: %d\n", SCHAR_MAX);
    printf("UCHAR_MAX: %u\n", UCHAR_MAX);

    printf("\nKurze Ganzzahltypen:\n");
    printf("SHRT_MIN: %d\n", SHRT_MIN);
    printf("SHRT_MAX: %d\n", SHRT_MAX);
    printf("USHRT_MAX: %u\n", USHRT_MAX);

    printf("\nGanzzahltypen:\n");
    printf("INT_MIN: %d\n", INT_MIN);
    printf("INT_MAX: %d\n", INT_MAX);
    printf("UINT_MAX: %u\n", UINT_MAX);

    printf("\nLange Ganzzahltypen:\n");
    printf("LONG_MIN: %ld\n", LONG_MIN);
    printf("LONG_MAX: %ld\n", LONG_MAX);
    printf("ULONG_MAX: %lu\n", ULONG_MAX);

    printf("\nLong-Long-Ganzzahltypen:\n");
    printf("LLONG_MIN: %lld\n", LLONG_MIN);
    printf("LLONG_MAX: %lld\n", LLONG_MAX);
    printf("ULLONG_MAX: %llu\n", ULLONG_MAX);

    return 0;
}

Lassen Sie uns das obige Programm kompilieren und ausführen, das die folgenden Ergebnisse liefert:

Character types:
CHAR_BIT: 8
CHAR_MIN: -128
CHAR_MAX: 127
SCHAR_MIN: -128
SCHAR_MAX: 127
UCHAR_MAX: 255

Short integer types:
SHRT_MIN: -32768
SHRT_MAX: 32767
USHRT_MAX: 65535

Integer types:
INT_MIN: -2147483648
INT_MAX: 2147483647
UINT_MAX: 4294967295

Long integer types:
LONG_MIN: -9223372036854775808
LONG_MAX: 9223372036854775807
ULONG_MAX: 18446744073709551615

Long long integer types:
LLONG_MIN: -9223372036854775808
LLONG_MAX: 9223372036854775807
ULLONG_MAX: 18446744073709551615

<limits.h>Es bietet viele Makros in Bezug auf Ganzzahltypen, die verwendet werden, um die Grenzen verschiedener Datentypen zu beschreiben. Diese Makros sind sehr nützlich für das Schreiben von robustem und portablem Code, da sie es Programmierern ermöglichen, die Grenzwerte von Datentypen auf verschiedenen Plattformen einfach zu ermitteln.

Weitere Erweiterungen