85 votes

différence entre stdint.h et inttypes.h

Quelle est la différence entre stdint.h et inttypes.h?

Si aucun d'entre eux est utilisé, un uint64_t n'est pas reconnu mais avec eux, c'est un type défini.

161voto

Mikko Östlund Points 689

stdint.h

Y compris ce fichier est la "condition minimale" si vous voulez travailler avec l'-largeur entier types de C99 (c'est à dire "int32_t", "uint16_t" etc.). Si vous incluez ce fichier, vous obtiendrez les définitions de ces types, de sorte que vous serez en mesure d'utiliser ces types de déclarations de variables et de fonctions, et effectuer des opérations avec ces types de données.

inttypes.h

Si vous incluez ce fichier, vous aurez tout ce que stdint.h (car inttypes.h comprend stdint.h), mais vous obtiendrez également des installations pour faire des printf et scanf (et "fprintf, "fscanf", et ainsi de suite.) avec ces types de façon portable. Par exemple, vous obtiendrez le "PRIu16" macro de sorte que vous pouvez printf une uint16_t entier comme ceci:

#include <stdio.h>
#include <inttypes.h>
int main (int argc, char *argv[]) {

    // Only requires stdint.h to compile:
    uint16_t myvar = 65535;

    // Requires inttypes.h to compile:
    printf("myvar=%" PRIu16 "\n", myvar);  
}

27voto

Ed Staub Points 7386

Voir l'article de wikipedia pour inttypes.h.

Utilisation stdint.h pour un ensemble minimal de définitions; utilisation inttypes.h si vous avez aussi besoin de support portatif pour ces dans printf, scanf, et al.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X