Bibliothèque standard C -<limits.h>
Introduction
<limits.h>est un fichier d'en-tête de la bibliothèque standard C, définissant les limites de divers types de données. Ces macros fournissent des informations sur les types entiers (char、short、int、longetlong longetc.) et les valeurs maximales et minimales des autres types de données.
Ces limites spécifient que les variables ne peuvent pas stocker de valeurs au-delà de ces limites ; par exemple, une variable unsigned peut stocker une valeur maximale de 255.
Macros de bibliothèque
Les valeurs suivantes sont définies par l'implémentation et sont définies via la directive #define ; ces valeurs ne doivent pas être inférieures aux valeurs données ci-dessous.
| Macro | Description | Valeur |
|---|---|---|
| Types de caractères | ||
CHAR_BIT |
charNombre de bits du type |
Généralement 8 |
CHAR_MIN |
charValeur minimale d'un type (signé ou non signé) |
-128 ou 0 |
CHAR_MAX |
charValeur maximale d'un type (signé ou non signé) |
127 ou 255 |
SCHAR_MIN |
signed charValeur minimale du type |
-128 |
SCHAR_MAX |
signed charValeur maximale du type |
127 |
UCHAR_MAX |
unsigned charValeur maximale du type |
255 |
| Type entier court | ||
SHRT_MIN |
shortValeur minimale du type |
-32768 |
SHRT_MAX |
shortValeur maximale du type |
32767 |
USHRT_MAX |
unsigned shortValeur maximale du type |
65535 |
| Types entiers | ||
INT_MIN |
intValeur minimale du type |
-2147483648 |
INT_MAX |
intValeur maximale du type |
2147483647 |
UINT_MAX |
unsigned intValeur maximale du type |
4294967295 |
| Type entier long | ||
LONG_MIN |
longValeur minimale du type |
-9223372036854775808L |
LONG_MAX |
longValeur maximale du type |
9223372036854775807L |
ULONG_MAX |
unsigned longValeur maximale du type |
18446744073709551615UL |
| Type entier long long | ||
LLONG_MIN |
long longValeur minimale du type |
-9223372036854775808LL |
LLONG_MAX |
long longValeur maximale du type |
9223372036854775807LL |
ULLONG_MAX |
unsigned long longValeur maximale du type |
18446744073709551615ULL |
Exemple
L'exemple suivant illustre l'utilisation de certaines constantes définies dans le fichier limit.h.
Exemple
#include <limits.h>
int main() {
printf("Types de caractères :\n");
printf("CHAR_BIT: %d\n", CHAR_BIT);
printf("CHAR_MIN: %d\n", CHAR_MIN);
printf("CHAR_MAX: %d\n", CHAR_MAX);
printf("SCHAR_MIN: %d\n", SCHAR_MIN);
printf("SCHAR_MAX: %d\n", SCHAR_MAX);
printf("UCHAR_MAX: %u\n", UCHAR_MAX);
printf("\nTypes d'entiers courts :\n");
printf("SHRT_MIN: %d\n", SHRT_MIN);
printf("SHRT_MAX: %d\n", SHRT_MAX);
printf("USHRT_MAX: %u\n", USHRT_MAX);
printf("\nTypes d'entiers :\n");
printf("INT_MIN: %d\n", INT_MIN);
printf("INT_MAX: %d\n", INT_MAX);
printf("UINT_MAX: %u\n", UINT_MAX);
printf("\nTypes d'entiers longs :\n");
printf("LONG_MIN: %ld\n", LONG_MIN);
printf("LONG_MAX: %ld\n", LONG_MAX);
printf("ULONG_MAX: %lu\n", ULONG_MAX);
printf("\nTypes d'entiers long long :\n");
printf("LLONG_MIN: %lld\n", LLONG_MIN);
printf("LLONG_MAX: %lld\n", LLONG_MAX);
printf("ULLONG_MAX: %llu\n", ULLONG_MAX);
return 0;
}
Compilons et exécutons le programme ci-dessus, qui produira les résultats suivants :
Character types: CHAR_BIT: 8 CHAR_MIN: -128 CHAR_MAX: 127 SCHAR_MIN: -128 SCHAR_MAX: 127 UCHAR_MAX: 255 Short integer types: SHRT_MIN: -32768 SHRT_MAX: 32767 USHRT_MAX: 65535 Integer types: INT_MIN: -2147483648 INT_MAX: 2147483647 UINT_MAX: 4294967295 Long integer types: LONG_MIN: -9223372036854775808 LONG_MAX: 9223372036854775807 ULONG_MAX: 18446744073709551615 Long long integer types: LLONG_MIN: -9223372036854775808 LLONG_MAX: 9223372036854775807 ULLONG_MAX: 18446744073709551615
<limits.h>Il fournit de nombreuses macros liées aux types entiers, utilisées pour décrire les limites de divers types de données. Ces macros sont très utiles pour écrire du code robuste et portable, car elles permettent aux programmeurs d'obtenir facilement les valeurs limites des types de données sur différentes plateformes.