#include <limits.h> // <climits> en C++
C23 ajoute des macros indiquant directement la largeur, en bits, de plusieurs types entiers. Elles évitent de déduire cette information à partir des bornes minimales et maximales.
| Macro | Depuis | Description |
|---|---|---|
BITINT_MAXWIDTH |
C23 | Largeur maximale supportée pour le type _BitInt. |
BOOL_WIDTH |
C23 | Largeur, en bits, du type _Bool. |
CHAR_WIDTH |
C23 | Largeur, en bits, du type char. |
SCHAR_WIDTH |
C23 | Largeur, en bits, du type signed char. |
UCHAR_WIDTH |
C23 | Largeur, en bits, du type unsigned char. |
SHRT_WIDTH |
C23 | Largeur, en bits, du type short. |
USHRT_WIDTH |
C23 | Largeur, en bits, du type unsigned short. |
INT_WIDTH |
C23 | Largeur, en bits, du type int. |
UINT_WIDTH |
C23 | Largeur, en bits, du type unsigned int. |
LONG_WIDTH |
C23 | Largeur, en bits, du type long. |
ULONG_WIDTH |
C23 | Largeur, en bits, du type unsigned long. |
LLONG_WIDTH |
C23 | Largeur, en bits, du type long long. |
ULLONG_WIDTH |
C23 | Largeur, en bits, du type unsigned long long. |
L'exemple suivant affiche les macros C23 uniquement si elles sont disponibles sur le compilateur utilise.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <limits.h> #include <stdio.h> #include <stdlib.h> int main() { #ifdef INT_WIDTH printf( "INT_WIDTH == %d\n", INT_WIDTH ); #endif #ifdef LONG_WIDTH printf( "LONG_WIDTH == %d\n", LONG_WIDTH ); #endif #ifdef BITINT_MAXWIDTH printf( "BITINT_MAXWIDTH == %d\n", BITINT_MAXWIDTH ); #endif return EXIT_SUCCESS; } |
Sur une plate-forme courante compatible C23, vous pouvez obtenir un affichage proche de celui-ci.
INT_WIDTH == 32 LONG_WIDTH == 64 BITINT_MAXWIDTH == 8388608
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :