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 <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.