Fixed width integer types (since C99)
Table des matières |
Types
|
Défini dans l'en-tête
<stdint.h>
|
|
int8_t
int16_t
int32_t
int64_t
|
type entier signé avec une largeur de
exactement 8, 16, 32 et 64 bits respectivement sans bits de remplissage et utilisant le complément à 2 pour les valeurs négatives (fourni uniquement si l'implémentation supporte directement le type) |
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
|
type entier signé le plus rapide avec une largeur d'
au moins 8, 16, 32 et 64 bits respectivement |
int_least8_t
int_least16_t
int_least32_t
int_least64_t
|
plus petit type entier signé avec une largeur d'
au moins 8, 16, 32 et 64 bits respectivement |
intmax_t
|
type entier de largeur maximale |
intptr_t
|
type entier capable de contenir un pointeur |
uint8_t
uint16_t
uint32_t
uint64_t
|
type entier non signé avec une largeur de
exactement 8, 16, 32 et 64 bits respectivement (fourni uniquement si l'implémentation supporte directement le type) |
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
|
type entier non signé le plus rapide avec une largeur d'
au moins 8, 16, 32 et 64 bits respectivement |
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
|
plus petit type entier non signé avec une largeur d'
au moins 8, 16, 32 et 64 bits respectivement |
uintmax_t
|
type entier non signé de largeur maximale |
uintptr_t
|
type entier non signé capable de contenir un pointeur |
L'implémentation peut définir des noms de typedef
int
N
_t
,
int_fast
N
_t
,
int_least
N
_t
,
uint
N
_t
,
uint_fast
N
_t
, et
uint_least
N
_t
lorsque
N
n'est pas 8, 16, 32 ou 64. Les noms de typedef de la forme
int
N
_t
ne peuvent être définis que si l'implémentation prend en charge un type entier de cette largeur sans remplissage. Ainsi,
uint24_t
désigne un type entier non signé avec une largeur exactement de 24 bits.
Chacune des macros listées ci-dessous est définie si et seulement si l'implémentation définit le nom de type correspondant. Les macros
INT
N
_C
et
UINT
N
_C
correspondent respectivement aux noms de types
int_least
N
_t
et
uint_least
N
_t
.
Constantes de macro
|
Défini dans l'en-tête
<stdint.h>
|
|
Entiers signés : largeur |
|
|
INT8_WIDTH
INT16_WIDTH
INT32_WIDTH
INT64_WIDTH
(C23)
(optionnel)
|
largeur en bits d'un objet de type
int8_t
,
int16_t
,
int32_t
,
int64_t
(exactement 8, 16, 32, 64)
(constante macro) |
|
INT_FAST8_WIDTH
INT_FAST16_WIDTH
INT_FAST32_WIDTH
INT_FAST64_WIDTH
(C23)
|
largeur en bits d'un objet de type
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
(constante macro) |
|
INT_LEAST8_WIDTH
INT_LEAST16_WIDTH
INT_LEAST32_WIDTH
INT_LEAST64_WIDTH
(C23)
|
largeur en bits d'un objet de type
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
(constante macro) |
|
INTPTR_WIDTH
(C23)
(optionnel)
|
largeur en bits d'un objet de type
intptr_t
(constante macro) |
|
INTMAX_WIDTH
(C23)
|
largeur en bits d'un objet de type
intmax_t
(constante macro) |
Entiers signés : valeur minimale |
|
|
INT8_MIN
INT16_MIN
INT32_MIN
INT64_MIN
|
valeur minimale d'un objet de type
int8_t
,
int16_t
,
int32_t
,
int64_t
(constante macro) |
|
INT_FAST8_MIN
INT_FAST16_MIN
INT_FAST32_MIN
INT_FAST64_MIN
|
valeur minimale d'un objet de type
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
(constante macro) |
|
INT_LEAST8_MIN
INT_LEAST16_MIN
INT_LEAST32_MIN
INT_LEAST64_MIN
|
valeur minimale d'un objet de type
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
(constante macro) |
|
INTPTR_MIN
|
valeur minimale d'un objet de type
intptr_t
(constante macro) |
|
INTMAX_MIN
|
valeur minimale d'un objet de type
intmax_t
(constante macro) |
Entiers signés : valeur maximale |
|
|
INT8_MAX
INT16_MAX
INT32_MAX
INT64_MAX
|
valeur maximale d'un objet de type
int8_t
,
int16_t
,
int32_t
,
int64_t
(constante macro) |
|
INT_FAST8_MAX
INT_FAST16_MAX
INT_FAST32_MAX
INT_FAST64_MAX
|
valeur maximale d'un objet de type
int_fast8_t
,
int_fast16_t
,
int_fast32_t
,
int_fast64_t
(constante macro) |
|
INT_LEAST8_MAX
INT_LEAST16_MAX
INT_LEAST32_MAX
INT_LEAST64_MAX
|
valeur maximale d'un objet de type
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
(constante macro) |
|
INTPTR_MAX
|
valeur maximale d'un objet de type
intptr_t
(constante macro) |
|
INTMAX_MAX
|
valeur maximale d'un objet de type
intmax_t
(constante macro) |
Entiers non signés : largeur |
|
|
UINT8_WIDTH
UINT16_WIDTH
UINT32_WIDTH
UINT64_WIDTH
(C23)
(optionnel)
|
largeur en bits d'un objet de type
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
(exactement 8, 16, 32, 64)
(constante macro) |
|
UINT_FAST8_WIDTH
UINT_FAST16_WIDTH
UINT_FAST32_WIDTH
UINT_FAST64_WIDTH
(C23)
|
largeur en bits d'un objet de type
uint_fast8_t
,
uint_fast16_t
,
uint_fast32_t
,
uint_fast64_t
(constante macro) |
|
UINT_LEAST8_WIDTH
UINT_LEAST16_WIDTH
UINT_LEAST32_WIDTH
UINT_LEAST64_WIDTH
(C23)
|
largeur en bits d'un objet de type
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
(constante macro) |
|
UINTPTR_WIDTH
(C23)
(optionnel)
|
largeur en bits d'un objet de type
uintptr_t
(constante macro) |
|
UINTMAX_WIDTH
(C23)
|
largeur en bits d'un objet de type
uintmax_t
(constante macro) |
Entiers non signés : valeur maximale |
|
|
UINT8_MAX
UINT16_MAX
UINT32_MAX
UINT64_MAX
|
valeur maximale d'un objet de type
uint8_t
,
uint16_t
,
uint32_t
,
uint64_t
(constante macro) |
|
UINT_FAST8_MAX
UINT_FAST16_MAX
UINT_FAST32_MAX
UINT_FAST64_MAX
|
valeur maximale d'un objet de type
uint_fast8_t
,
uint_fast16_t
,
uint_fast32_t
,
uint_fast64_t
(constante macro) |
|
UINT_LEAST8_MAX
UINT_LEAST16_MAX
UINT_LEAST32_MAX
UINT_LEAST64_MAX
|
valeur maximale d'un objet de type
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
(constante macro) |
|
UINTPTR_MAX
|
valeur maximale d'un objet de type
uintptr_t
(constante macro) |
|
UINTMAX_MAX
|
valeur maximale d'un objet de type
uintmax_t
(constante macro) |
Macros de fonction pour les constantes entières de largeur minimale
|
INT8_C
INT16_C
INT32_C
INT64_C
|
se développe en une expression constante entière ayant la valeur spécifiée par son argument et le type
int_least8_t
,
int_least16_t
,
int_least32_t
,
int_least64_t
respectivement
(macro de fonction) |
|
INTMAX_C
|
se développe en une expression constante entière ayant la valeur spécifiée par son argument et le type
intmax_t
(macro de fonction) |
|
UINT8_C
UINT16_C
UINT32_C
UINT64_C
|
se développe en une expression constante entière ayant la valeur spécifiée par son argument et le type
uint_least8_t
,
uint_least16_t
,
uint_least32_t
,
uint_least64_t
respectivement
(macro de fonction) |
|
UINTMAX_C
|
se développe en une expression constante entière ayant la valeur spécifiée par son argument et le type
uintmax_t
(macro de fonction) |
#include <stdint.h> UINT64_C(0x123) // pourrait s'étendre à 0x123ULL ou 0x123UL
Constantes de macro de format
|
Défini dans l'en-tête
<inttypes.h>
|
Constantes de format pour la famille de fonctions fprintf
Chacune des
PRI
macros listées ici est définie si et seulement si l'implémentation définit le nom de type correspondant.
|
Équivalent
pour int ou unsigned int |
Description | Macros pour les types de données | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
affichage d'une valeur entière décimale signée | PRId x | PRIdLEAST x | PRIdFAST x | PRIdMAX | PRIdPTR |
i
|
PRIi x | PRIiLEAST x | PRIiFAST x | PRIiMAX | PRIiPTR | |
u
|
affichage d'une valeur entière décimale non signée | PRIu x | PRIuLEAST x | PRIuFAST x | PRIuMAX | PRIuPTR |
o
|
affichage d'une valeur entière octale non signée | PRIo x | PRIoLEAST x | PRIoFAST x | PRIoMAX | PRIoPTR |
x
|
affichage d'une valeur entière hexadécimale minuscule non signée | PRIx x | PRIxLEAST x | PRIxFAST x | PRIxMAX | PRIxPTR |
X
|
affichage d'une valeur entière hexadécimale majuscule non signée | PRIX x | PRIXLEAST x | PRIXFAST x | PRIXMAX | PRIXPTR |
Constantes de format pour la famille de fonctions fscanf
Chacune des
SCN
macros listées ici est définie si et seulement si l'implémentation définit le nom de type correspondant et possède un modificateur de longueur
fscanf
approprié pour le type.
|
Équivalent
pour int ou unsigned int |
Description | Macros pour les types de données | ||||
|---|---|---|---|---|---|---|
[u]int
x
_t
|
[u]int_least
x
_t
|
[u]int_fast
x
_t
|
[u]intmax_t
|
[u]intptr_t
|
||
d
|
saisie d'une valeur entière décimale signée | SCNd x | SCNdLEAST x | SCNdFAST x | SCNdMAX | SCNdPTR |
i
|
saisie d'une valeur entière signée (la base est déterminée par les premiers caractères analysés) | SCNi x | SCNiLEAST x | SCNiFAST x | SCNiMAX | SCNiPTR |
u
|
saisie d'une valeur entière décimale non signée | SCNu x | SCNuLEAST x | SCNuFAST x | SCNuMAX | SCNuPTR |
o
|
saisie d'une valeur entière octale non signée | SCNo x | SCNoLEAST x | SCNoFAST x | SCNoMAX | SCNoPTR |
x
|
saisie d'une valeur entière hexadécimale non signée | SCNx x | SCNxLEAST x | SCNxFAST x | SCNxMAX | SCNxPTR |
Exemple
Voir aussi la note de compatibilité C++ concernant les espaces avant les macros de format utilisées dans cet exemple.
Sortie possible :
8 lld -9223372036854775808 +9223372036854775807 +7
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.8.1 Macros pour les spécificateurs de format (p: TBD)
-
- 7.18 Types entiers <stdint.h> (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.8.1 Macros pour les spécificateurs de format (p : 158-159)
-
- 7.18 Types entiers <stdint.h> (p : 212-216)
- Norme C11 (ISO/IEC 9899:2011) :
-
- 7.8.1 Macros pour les spécificateurs de format (p: 217-218)
-
- 7.18 Types entiers <stdint.h> (p: 289-295)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.8.1 Macros pour les spécificateurs de format (p: 198-199)
-
- 7.18 Types entiers <stdint.h> (p: 255-261)
Voir aussi
|
Documentation C++
pour
Types entiers de largeur fixe
|
|
|
Documentation C++
pour
Littéraux définis par l'utilisateur (
note sur les macros de formatage
)
|