Bonne introduction à

Je souhaite recommander l’utilisation de à quelqu’un qui printf avec des versions mixtes 32/64 bits. J’ai essayé de Google une page d’introduction ou de tutoriel avec quelques exemples et règles d’utilisation, mais je n’ai pas pu en trouver.

Quelqu’un peut-il recommander une introduction ou un tutoriel pour ?

Essayez http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html pour commencer.

Un meilleur exemple d’utilisation des nouvelles macros de formatage portables a été trouvé dans avr-libc . J’ai inclus un exemple (tiré du lien) à illustrer. Les bibliothèques QNX ont également une meilleure description lisible par l’homme (si vous n’aimez pas lire la spécification à froid), bien que vous deviez faire défiler presque la fin de la page pour accéder à la chair des descriptions.

 #include  uint8_t smallval; int32_t longval; ... printf("The hexadecimal value of smallval is %" PRIx8 ", the decimal value of longval is %" PRId32 ".\n", smallval, longval); 

Notez que cette opération utilise l’opérateur de concaténation implicite “Ssortingng” pour générer la chaîne (dans cet exemple).

 "The hexadecimal value of smallval is %x, the decimal value of longval is %ld.\n" 

Une tentative de décomposer la convention de nommage semble indiquer:

  • (trois premières lettres)
    • PRI pour le format printf
    • SCN pour le format scanf
  • (quasortingème lettre)
    • x pour la mise en forme hexadécimale
    • u pour le formatage non signé
    • o pour la mise en forme octale
    • i pour le formatage entier
    • d pour le format décimal
  • (lettres supplémentaires)
    • 8 pour huit bits
    • 16 pour seize bits
    • 32 pour trente-deux bits
    • 64 pour soixante-quatre bits
    • FAST8 pour “rapide” huit bits
    • FAST16 pour “rapide” seize bits
    • FAST32 pour “rapide” trente-deux bits
    • FAST64 pour “rapide” soixante-quatre bits
    • LEAST8 pour “le moins” huit bits
    • LEAST16 pour “moins” seize bits
    • LEAST32 pour “moins” trente deux bits
    • LEAST64 pour “le moins” soixante-quatre bits
    • PTR pour pointeur
    • MAX pour la taille de bit maximale prise en charge

donc PRIx8 signifie une instruction de format printf à formater en huit bits hexadécimaux.

Je vais toujours à la norme ( lien PDF ) pour ces choses; ils ne sont pas trop compliqués une fois que vous avez compris les motifs dans lesquels ils sont configurés. La section pertinente est §7.8 Conversion de format des types entiers .

HP possède une bonne référence en matière d’écriture de code portable et donne des conseils spécifiques sur l’utilisation d’inttypes.h

Écrire du code portable

Je commence toujours par Wikipedia pour rechercher un en-tête. semble être très problématique sur Wikipedia. La prochaine étape que je prendrais ensuite est d’aller sur ce site . Ce site précédent répertorie chaque macro et donne un exemple. Vous pouvez également consulter ce site , qui affiche en fait le fichier d’en-tête. Je ne pense pas que ce soit des tutoriels à proprement parler, mais ils sont un bon sharepoint départ.