Comment puis-je imprimer uint32_t et uint16_t variables de la valeur?

Je suis en train d'imprimer un uint16_t et uint32_t valeur, mais il n'est pas de donner de sortie souhaité.

#include <stdio.h>
#include <netinet/in.h>

int main()
{
     uint32_t a=12,a1;
     uint16_t b=1,b1;
     a1=htonl(a);
     printf("%d---------%d",a1);
     b1=htons(b);
     printf("\n%d-----%d",b,b1);
     return 0;
}

J'ai aussi utilisé

 printf("%"PRIu32, a);

qui affiche une erreur.

Comment faire pour imprimer un de ces valeurs et de ce que sera le résultat souhaité?

  • Il serait beaucoup plus utile de nous montrer l' (exact!) message d'erreur plutôt que de simplement dire que c'est "montre l'erreur". Et plutôt que de simplement "ne donnant pas souhaité s/p", de nous montrer la sortie réelle (et épeler le mot "sortie" plutôt que d'écrire "o/p).
  • printf("%d---------%d",a1); produit un comportement indéterminé parce que vous avez deux %d dans la chaîne de format, mais seulement de transmettre un paramètre.
  • Double Possible de les spécificateurs de Format pour u_int8_t, uint16_t, ...?
InformationsquelleAutor xrcwrn | 2012-08-25