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 <stdio.h>
#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.

autres extensions