Ganzzahltypen mit fester Breite (seit C99)
Inhalt |
[bearbeiten] Typen
| Definiert in Header
<stdint.h> | |
int8_tint16_tint32_tint64_t
|
signierter Ganzzahltyp mit einer Breite von genau 8, 16, 32 bzw. 64 Bits ohne Auffüllbits und unter Verwendung von 2er-Komplement für negative Werte (nur bereitgestellt, wenn die Implementierung den Typ direkt unterstützt) |
int_fast8_tint_fast16_tint_fast32_tint_fast64_t
|
schnellster signierter Ganzzahltyp mit einer Breite von mindestens 8, 16, 32 bzw. 64 Bits |
int_least8_tint_least16_tint_least32_tint_least64_t
|
kleinster signierter Ganzzahltyp mit einer Breite von mindestens 8, 16, 32 bzw. 64 Bits |
intmax_t
|
maximaler Ganzzahltyp |
intptr_t
|
Ganzzahltyp, der einen Zeiger aufnehmen kann |
uint8_tuint16_tuint32_tuint64_t
|
vorzeichenloser Ganzzahltyp mit einer Breite von genau 8, 16, 32 bzw. 64 Bits (nur bereitgestellt, wenn die Implementierung den Typ direkt unterstützt) |
uint_fast8_tuint_fast16_tuint_fast32_tuint_fast64_t
|
schnellster vorzeichenloser Ganzzahltyp mit einer Breite von mindestens 8, 16, 32 bzw. 64 Bits |
uint_least8_tuint_least16_tuint_least32_tuint_least64_t
|
kleinster vorzeichenloser Ganzzahltyp mit einer Breite von mindestens 8, 16, 32 bzw. 64 Bits |
uintmax_t
|
maximaler vorzeichenloser Ganzzahltyp |
uintptr_t
|
vorzeichenloser Ganzzahltyp, der einen Zeiger aufnehmen kann |
Die Implementierung kann `typedef`-Namen intN_t, int_fastN_t, int_leastN_t, uintN_t, uint_fastN_t und uint_leastN_t definieren, wenn N nicht 8, 16, 32 oder 64 ist. `typedef`-Namen der Form intN_t dürfen nur definiert werden, wenn die Implementierung einen Ganzzahltyp dieser Breite ohne Padding unterstützt. Somit bezeichnet uint24_t einen vorzeichenlosen Ganzzahltyp mit einer Breite von genau 24 Bits.
Jedes der unten aufgeführten Makros ist definiert, wenn und nur wenn die Implementierung den entsprechenden `typedef`-Namen definiert. Die Makros INTN_C und UINTN_C entsprechen den `typedef`-Namen int_leastN_t und uint_leastN_t.
[bearbeiten] Makrokonstanten
| Definiert in Header
<stdint.h> | |
Gezielte Ganzzahlen : Breite | |
| INT8_WIDTHINT16_WIDTHINT32_WIDTHINT64_WIDTH (C23)(optional) |
Bitbreite eines Objekts vom Typ int8_t, int16_t, int32_t, int64_t (genau 8, 16, 32, 64) (Makro-Konstante) |
| INT_FAST8_WIDTHINT_FAST16_WIDTHINT_FAST32_WIDTHINT_FAST64_WIDTH (C23) |
Bitbreite eines Objekts vom Typ int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t (Makro-Konstante) |
| INT_LEAST8_WIDTHINT_LEAST16_WIDTHINT_LEAST32_WIDTHINT_LEAST64_WIDTH (C23) |
Bitbreite eines Objekts vom Typ int_least8_t, int_least16_t, int_least32_t, int_least64_t (Makro-Konstante) |
| INTPTR_WIDTH (C23)(optional) |
Bitbreite eines Objekts vom Typ intptr_t (Makro-Konstante) |
| INTMAX_WIDTH (C23) |
Bitbreite eines Objekts vom Typ intmax_t (Makro-Konstante) |
Vorzeichenbehaftete Ganzzahlen : Minimalwert | |
| INT8_MININT16_MININT32_MININT64_MIN |
Minimalwert eines Objekts vom Typ int8_t, int16_t, int32_t, int64_t (Makro-Konstante) |
| INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN |
Minimalwert eines Objekts vom Typ int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t (Makro-Konstante) |
| INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN |
Minimalwert eines Objekts vom Typ int_least8_t, int_least16_t, int_least32_t, int_least64_t (Makro-Konstante) |
| INTPTR_MIN |
Minimalwert eines Objekts vom Typ intptr_t (Makro-Konstante) |
| INTMAX_MIN |
Minimalwert eines Objekts vom Typ intmax_t (Makro-Konstante) |
Vorzeichenbehaftete Ganzzahlen : Maximalwert | |
| INT8_MAXINT16_MAXINT32_MAXINT64_MAX |
Maximalwert eines Objekts vom Typ int8_t, int16_t, int32_t, int64_t (Makro-Konstante) |
| INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX |
Maximalwert eines Objekts vom Typ int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t (Makro-Konstante) |
| INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX |
Maximalwert eines Objekts vom Typ int_least8_t, int_least16_t, int_least32_t, int_least64_t (Makro-Konstante) |
| INTPTR_MAX |
Maximalwert eines Objekts vom Typ intptr_t (Makro-Konstante) |
| INTMAX_MAX |
Maximalwert eines Objekts vom Typ intmax_t (Makro-Konstante) |
Ungenau Ganzzahlen : Breite | |
| UINT8_WIDTHUINT16_WIDTHUINT32_WIDTHUINT64_WIDTH (C23)(optional) |
Bitbreite eines Objekts vom Typ uint8_t, uint16_t, uint32_t, uint64_t (genau 8, 16, 32, 64) (Makro-Konstante) |
| UINT_FAST8_WIDTHUINT_FAST16_WIDTHUINT_FAST32_WIDTHUINT_FAST64_WIDTH (C23) |
Bitbreite eines Objekts vom Typ uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t (Makro-Konstante) |
| UINT_LEAST8_WIDTHUINT_LEAST16_WIDTHUINT_LEAST32_WIDTHUINT_LEAST64_WIDTH (C23) |
Bitbreite eines Objekts vom Typ uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t (Makro-Konstante) |
| UINTPTR_WIDTH (C23)(optional) |
Bitbreite eines Objekts vom Typ uintptr_t (Makro-Konstante) |
| UINTMAX_WIDTH (C23) |
Bitbreite eines Objekts vom Typ uintmax_t (Makro-Konstante) |
Vorzeichenlose Ganzzahlen : Maximalwert | |
| UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX |
Maximalwert eines Objekts vom Typ uint8_t, uint16_t, uint32_t, uint64_t (Makro-Konstante) |
| UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX |
Maximalwert eines Objekts vom Typ uint_fast8_t, uint_fast16_t, uint_fast32_t, uint_fast64_t (Makro-Konstante) |
| UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX |
Maximalwert eines Objekts vom Typ uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t (Makro-Konstante) |
| UINTPTR_MAX |
Maximalwert eines Objekts vom Typ uintptr_t (Makro-Konstante) |
| UINTMAX_MAX |
Maximalwert eines Objekts vom Typ uintmax_t (Makro-Konstante) |
[bearbeiten] Makros für Konstanten mit minimaler Breite
| INT8_CINT16_CINT32_CINT64_C |
ergibt einen ganzzahligen Ausdruck mit dem Wert, der durch das Argument angegeben ist, und dem Typ int_least8_t, int_least16_t, int_least32_t, int_least64_t (Funktionsmakro) |
| INTMAX_C |
ergibt einen ganzzahligen Ausdruck mit dem Wert, der durch das Argument angegeben ist, und dem Typ intmax_t (Funktionsmakro) |
| UINT8_CUINT16_CUINT32_CUINT64_C |
ergibt einen ganzzahligen Ausdruck mit dem Wert, der durch das Argument angegeben ist, und dem Typ uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t (Funktionsmakro) |
| UINTMAX_C |
ergibt einen ganzzahligen Ausdruck mit dem Wert, der durch das Argument angegeben ist, und dem Typ uintmax_t (Funktionsmakro) |
#include <stdint.h> UINT64_C(0x123) // might expand to 0x123ULL or 0x123UL
[bearbeiten] Format-Makrokonstanten
| Definiert in Header
<inttypes.h> |
[bearbeiten] Formatkonstanten für die fprintf-Familie von Funktionen
Jedes der hier aufgeführten PRI-Makros ist definiert, wenn und nur wenn die Implementierung den entsprechenden `typedef`-Namen definiert.
| Äquivalent für int oder unsigned int |
Beschreibung | Makros für Datentypen | ||||
|---|---|---|---|---|---|---|
[u]intx_t |
[u]int_leastx_t |
[u]int_fastx_t |
[u]intmax_t |
[u]intptr_t | ||
d
|
Ausgabe eines vorzeichenbehafteten Dezimalganzzahlwerts | PRIdx | PRIdLEASTx | PRIdFASTx | PRIdMAX | PRIdPTR |
i
|
PRIix | PRIiLEASTx | PRIiFASTx | PRIiMAX | PRIiPTR | |
u
|
Ausgabe eines vorzeichenlosen Dezimalganzzahlwerts | PRIux | PRIuLEASTx | PRIuFASTx | PRIuMAX | PRIuPTR |
o
|
Ausgabe eines vorzeichenlosen Oktalganzzahlwerts | PRIox | PRIoLEASTx | PRIoFASTx | PRIoMAX | PRIoPTR |
x
|
Ausgabe eines vorzeichenlosen hexadezimalen Ganzzahlwerts mit Kleinbuchstaben | PRIxx | PRIxLEASTx | PRIxFASTx | PRIxMAX | PRIxPTR |
X
|
Ausgabe eines vorzeichenlosen hexadezimalen Ganzzahlwerts mit Großbuchstaben | PRIXx | PRIXLEASTx | PRIXFASTx | PRIXMAX | PRIXPTR |
[bearbeiten] Formatkonstanten für die fscanf-Familie von Funktionen
Jedes der hier aufgeführten SCN-Makros ist definiert, wenn und nur wenn die Implementierung den entsprechenden `typedef`-Namen definiert und einen geeigneten Längenmodifikator für fscanf für den Typ hat.
| Äquivalent für int oder unsigned int |
Beschreibung | Makros für Datentypen | ||||
|---|---|---|---|---|---|---|
[u]intx_t |
[u]int_leastx_t |
[u]int_fastx_t |
[u]intmax_t |
[u]intptr_t | ||
d
|
Eingabe eines vorzeichenbehafteten Dezimalganzzahlwerts | SCNdx | SCNdLEASTx | SCNdFASTx | SCNdMAX | SCNdPTR |
i
|
Eingabe eines vorzeichenbehafteten Ganzzahlwerts (Basis wird durch die ersten gelesenen Zeichen bestimmt) | SCNix | SCNiLEASTx | SCNiFASTx | SCNiMAX | SCNiPTR |
u
|
Eingabe eines vorzeichenlosen Dezimalganzzahlwerts | SCNux | SCNuLEASTx | SCNuFASTx | SCNuMAX | SCNuPTR |
o
|
Eingabe eines vorzeichenlosen Oktalganzzahlwerts | SCNox | SCNoLEASTx | SCNoFASTx | SCNoMAX | SCNoPTR |
x
|
Eingabe eines vorzeichenlosen hexadezimalen Ganzzahlwerts | SCNxx | SCNxLEASTx | SCNxFASTx | SCNxMAX | SCNxPTR |
[bearbeiten] Beispiel
Siehe auch C++ Kompatibilitätshinweis bezüglich Leerzeichen vor den Format-Makros, die in diesem Beispiel verwendet werden.
Mögliche Ausgabe
8 lld -9223372036854775808 +9223372036854775807 +7
[bearbeiten] Referenzen
- C23-Standard (ISO/IEC 9899:2024)
- 7.8.1 Makros für Format-Spezifizierer (S. TBD)
- 7.18 Ganzzahltypen <stdint.h> (S. TBD)
- C17-Standard (ISO/IEC 9899:2018)
- 7.8.1 Makros für Format-Spezifizierer (S. 158-159)
- 7.18 Ganzzahltypen <stdint.h> (S. 212-216)
- C11-Standard (ISO/IEC 9899:2011)
- 7.8.1 Makros für Format-Spezifizierer (S. 217-218)
- 7.18 Ganzzahltypen <stdint.h> (S. 289-295)
- C99-Standard (ISO/IEC 9899:1999)
- 7.8.1 Makros für Format-Spezifizierer (S. 198-199)
- 7.18 Ganzzahltypen <stdint.h> (S. 255-261)
[bearbeiten] Siehe auch
| C++ Dokumentation für Ganzzahltypen mit fester Breite
| |
| C++ Dokumentation für Benutzerdefinierte Literale (Hinweis zu Format-Makros)
|