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 <inttypes.h> (<cinttypes> en C++)

Les macros PRI*


Accès rapide :
Présentation de l'entête <inttypes.h>
Entête à inclure
Eléments fournis par la librairie <inttypes.h>
Sujets connexes

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

L'entête <inttypes.h>, introduit avec C99, complète <stdint.h>. Il fournit des macros de format adaptées aux types entiers à largeur contrôlée, ainsi que quelques fonctions travaillant avec intmax_t et uintmax_t.

Cette librairie devient importante dès que vous affichez ou lisez des types comme int32_t, uint64_t, intptr_t ou uintmax_t. Les tailles réelles de ces types peuvent varier selon les plates-formes : les macros PRI* et SCN* permettent donc d'éviter les suppositions fragiles dans les chaînes de format.

POSIX expose aussi <inttypes.h>, mais ne rajoute pas de famille de fonctions propre à cette section. Les éléments documentés ici proviennent du standard C ISO ; certaines plates-formes POSIX peuvent toutefois demander des macros de feature test pour rendre visibles tous les symboles.

Entête à inclure

#include <inttypes.h>  // <cinttypes> en C++

Le programme suivant affiche des entiers de tailles différentes en utilisant les macros de format prévues par le standard.

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

int main() {

    int32_t value = INT32_C( -123456 );
    uintmax_t mask = UINTMAX_C( 0xff00 );

    printf( "value == %" PRId32 "\n", value );
    printf( "mask  == 0x%" PRIxMAX "\n", mask );

    return 0;
}
Afficher des entiers avec inttypes.h

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

Nom Depuis Description
__STDC_VERSION_INTTYPES_H__ C23 Version de l'entête <inttypes.h>.
PRI* C99/C23 Macros de format pour printf, fprintf et wprintf.
SCN* C99/C23 Macros de format pour scanf, fscanf et wscanf.
imaxdiv_t C99 Type de retour de la fonction imaxdiv.
imaxabs C99 Calcule la valeur absolue d'un intmax_t.
imaxdiv C99 Calcule le quotient et le reste d'une division entière en une seule opération.
strtoimax, strtoumax C99 Convertissent une chaîne étroite en intmax_t ou uintmax_t.
wcstoimax, wcstoumax C99 Convertissent une chaîne large en intmax_t ou uintmax_t.

Sujets connexes

printf, fprintf et sprintf
scanf, fscanf et sscanf
stdint.h / cstdint
strtol


Les macros PRI*




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