#include <limits.h> // <climits> en C++
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.
| Macro | Depuis | Description |
|---|---|---|
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. |
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; } |
Le resultat produit par cet exemple est :
Addition impossible sans dépassement
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 :