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é

La librairie <limits.h> (<climits> en C++)

La librairie iso646.h Les limites des entiers C


Accès rapide :
Présentation de l'entête <limits.h>
Exemple d'utilisation
Eléments fournis par la librairie <limits.h>

Présentation de l'entête <limits.h>

L'entête <limits.h>, ou <climits> en C++, expose les limites des types entiers fondamentaux du langage C. Il permet notamment de savoir jusqu'ou peuvent aller un int, un long, un char ou encore un long long.

POSIX réutilise aussi cet entête pour publier de nombreuses limites de ressources : longueur maximale d'un chemin, nombre maximal de descripteurs, taille d'une page, nombre de groupes supplémentaires, etc. Certaines de ces valeurs peuvent varier à l'exécution ; dans ce cas, les fonctions sysconf, pathconf et fpathconf sont souvent plus adaptées.

Pour utiliser ces macros, il suffit d'inclure l'entête suivant.

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

Exemple d'utilisation

L'exemple suivant affiche quelques limites entières courantes.

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

int main() {

    printf( "CHAR_BIT  == %d\n", CHAR_BIT );
    printf( "INT_MIN   == %d\n", INT_MIN );
    printf( "INT_MAX   == %d\n", INT_MAX );
    printf( "LONG_MAX  == %ld\n", LONG_MAX );
    printf( "ULLONG_MAX == %llu\n", ULLONG_MAX );

    return EXIT_SUCCESS;
}
Lecture de quelques limites entières

Sur une plate-forme courante, vous pouvez obtenir un affichage proche de celui-ci.

CHAR_BIT  == 8
INT_MIN   == -2147483648
INT_MAX   == 2147483647
LONG_MAX  == 9223372036854775807
ULLONG_MAX == 18446744073709551615

Eléments fournis par la librairie <limits.h>

Nom Depuis Description
CHAR_BIT, INT_MIN, LONG_MAX... C89/C99 Macros de limites associees aux types entiers historiques du langage C.
INT_WIDTH, LONG_WIDTH, BITINT_MAXWIDTH... C23 Macros indiquant la largeur, en bits, de certains types entiers.
ARG_MAX, OPEN_MAX, STREAM_MAX... POSIX Limites POSIX liées aux ressources d'exécution, aux threads, aux signaux et aux utilitaires.
NAME_MAX, PATH_MAX, PIPE_BUF... POSIX Limites POSIX liées aux chemins, aux fichiers et aux terminaux.
_POSIX_*, _POSIX2_*, _XOPEN_* POSIX Valeurs minimales portables garanties par POSIX.
SSIZE_MAX, LONG_BIT, NL_ARGMAX... POSIX Autres limites POSIX fournies par l'entété.


La librairie iso646.h Les limites des entiers C




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