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 limites des types entiers C

La librairie limits.h Les largeurs entières C23


Entête à inclure

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

Macros de limites

Ces macros permettent d'écrire du code portable sans supposer qu'un type entier possède une taille précise. Les macros liées à long long ont été ajoutées avec C99.

MacroDepuisDescription
CHAR_BIT C89 Nombre de bits dans un objet de type char.
CHAR_MIN C89 Plus petite valeur d'un objet de type char.
CHAR_MAX C89 Plus grande valeur d'un objet de type char.
SCHAR_MIN C89 Plus petite valeur d'un signed char.
SCHAR_MAX C89 Plus grande valeur d'un signed char.
UCHAR_MAX C89 Plus grande valeur d'un unsigned char.
SHRT_MIN C89 Plus petite valeur d'un short.
SHRT_MAX C89 Plus grande valeur d'un short.
USHRT_MAX C89 Plus grande valeur d'un unsigned short.
INT_MIN C89 Plus petite valeur d'un int.
INT_MAX C89 Plus grande valeur d'un int.
UINT_MAX C89 Plus grande valeur d'un unsigned int.
LONG_MIN C89 Plus petite valeur d'un long.
LONG_MAX C89 Plus grande valeur d'un long.
ULONG_MAX C89 Plus grande valeur d'un unsigned long.
LLONG_MIN C99 Plus petite valeur d'un long long.
LLONG_MAX C99 Plus grande valeur d'un long long.
ULLONG_MAX C99 Plus grande valeur d'un unsigned long long.
MB_LEN_MAX C89 Nombre maximal d'octets dans un caractere multioctet.

Exemple de code

Le bloc suivant utilise INT_MAX pour refuser une addition qui depasserait la capacite d'un int.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>

int main() {

    int value = INT_MAX - 2;
    int increment = 10;

    if ( increment > INT_MAX - value ) {
        printf( "Addition impossible sans dépassement\n" );
    } else {
        value += increment;
        printf( "value == %d\n", value );
    }

    return EXIT_SUCCESS;
}
Contrôle d'un dépassement d'entier

Le resultat produit par cet exemple est :

Addition impossible sans dépassement

Sujets connexes

<limits.h>
Largeurs entières C23
<stdint.h>


La librairie limits.h Les largeurs entières C23




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