B.17 <stdint.h> (C99) 

In der Headerdatei <stdint.h> werden ganzzahlige Typen mit bestimmter Breite definiert. Mit »vorgegebener Breite« ist die Anzahl der Bits zur Darstellung des Werts gemeint, die dieser Typ verwenden darf. Spezielle Formatierungsspezifizierer für die printf- und scanf-Familie finden Sie in der Headerdatei <inttypes.h>. Hier die Typen im Überblick (Typen, die mit u (unsigned) beginnen, sind vorzeichenlos):
Typ | Bedeutung |
intN_t uintN_t |
Ein int-Wert mit einer Breite von exakt N Bits. Dieser Typ ist optional und wird nicht vom C99-Standard gefordert. Damit wäre es beispielsweise möglich, eigene erweiterte Ganzzahltypen wie beispielsweise int22_t oder uint34_t zu definieren und verwenden. |
int_leastN_t 1) uint_leastN_t 1) |
ein int-Wert mit einer Breite von mindestens N Bits (erlaubte Werte für N: 8, 16, 32, 64) |
int_fastN_t 1) uint_fastN_t 1) |
der schnellste int-Typ mit mindestens einer Breite von N Bits (erlaubte Werte für N: 8, 16, 32, 64) |
intmax_t 1) uintmax_t 1) |
größtmöglicher ganzzahliger Typ (Wert ist in der Konstante INT64_MAX bzw. UINT64_MAX deklariert) |
intptr_t uintptr_t |
maximale Breite, um den Wert eines Zeigers zu speichern |
1) Typen werden vom C99-Standard vorgeschrieben. Der Rest ist optional. |
Selbstverständlich finden Sie in der Headerdatei <stdint.h> auch die zum definierten Typ gehörenden Makros, die den minimalen und maximalen Wertebereich des Typs definieren. Auch hier müssen Sie N gegen die erlaubten Werte 8, 16, 32 oder 64 austauschen:
Typ | Minimal | Maximal |
intN_t uintN_t |
INTN_MIN |
INTN_MAX UINTN_MAX |
int_leastN_t uint_leastN_t |
INT_LEASTN_MIN |
INT_LEASTN_MAX UINT_LEASTN_MAX |
int_fastN_t uint_fastN_t |
INT_FASTN_MIN |
INT_FASTN_MAX UINT_FASTN_MAX |
intmax_t uintmax_t |
INTMAX_MIN |
INTMAX_MAX
UINTMAX_MAX |
intptr_t uintptr_t |
INTPTR_MIN |
INTPTR_MAX
UINTPTR_MAX |
Ebenfalls in der Headerdatei <stdint.h> werden Wertebereiche für Typen aus anderen Headern definiert:
Typ | Minimal | Maximal |
ptrdiff_t |
PTRDIFF_MIN (-65535) |
PTRDIFF_MAX (+65535) |
sig_atomic_t1) |
SIG_ATOMIC_MIN (-127) |
SIG_ATOMIC_MAX (+127) |
size_t |
SIZE_MAX (+65535) |
|
wchar_t1) |
WCHAR_MIN (-127) |
WCHAR_MAX (+127) |
wint_t1) |
WINT_MIN (-32767) |
WINT_MAX (+32767) |
1) Die Typen können auch ohne Vorzeichen definiert sein, womit sich der maximale Wert verdoppelt. |
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.