Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Les largeurs entières C23 de <limits.h>

Les limites des entiers C Les limites POSIX d'exécution


Entête à inclure

#include <limits.h>  // <climits> en C++

Macros de largeur

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.

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

Exemple de code

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;
}
Utilisation conditionnelle des largeurs C23

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

Sujets connexes

<limits.h>
Limites entières historiques
Les nouveautes introduites par C23


Les limites des entiers C Les limites POSIX d'exécution




Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé