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 types intmax_t et uintmax_t

Les types intptr_t et uintptr_t Les constantes de limites


Entête à inclure

#include <stdint.h>  // <cstdint> en C++

Les plus grands types entiers disponibles

Le type intmax_t représente le plus grand type entier signé proposé par l'implémentation. Le type uintmax_t joue le même rôle pour les entiers non signés. Ces deux types sont pratiques pour écrire des fonctions génériques capables de manipuler de grandes valeurs entières sans choisir directement entre long, long long ou un autre type plus spécifique.

Pour afficher proprement ces types avec printf, il faut normalement utiliser les macros de format définies par <inttypes.h>. Cette librairie complète <stdint.h> pour les opérations d'entrée/sortie formatées.

L'exemple suivant additionne plusieurs valeurs de type intmax_t, puis affiche le résultat avec la macro PRIdMAX.

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

int main() {

    intmax_t first = INTMAX_C( 10000000000 );
    intmax_t second = INTMAX_C( 25000000000 );
    intmax_t total = first + second;

    printf( "total == %" PRIdMAX "\n", total );

    return EXIT_SUCCESS;
}
Utilisation du type intmax_t

Les résultats produits par cet exemple sont :

total == 35000000000

Le type uintmax_t suit la même logique pour les valeurs non signées. Pour l'affichage, il faut alors utiliser la macro PRIuMAX, elle aussi définie dans <inttypes.h>.

Sujets connexes

inttypes.h / cinttypes
Constantes de limites
La librairie stdint.h
Macros de constantes entières


Les types intptr_t et uintptr_t Les constantes de limites




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