Les spécificateurs de Format pour u_int8_t, uint16_t, ...?

Si j'ai une variable de type entier je peux utiliser sscanf comme indiqué ci-dessous en utilisant le spécificateur de format %d.

sscanf (line, "Value of integer: %d\n", &my_integer);

Où puis-je trouver les spécificateurs de format pour uint8_t, uint16_t, uint32_t et uint64_t?

un uint64_t a probablement %lu.

  • N'est-ce pas %lu pour unsigned long? C'est souvent à 32 bits.
  • Pas de problème si vous utilisez iostreams au lieu de cela, qui s'adaptent au type de
  • attention, pour 64 bits de cibles, Windows 64 unsigned long est de 32 bits, alors que tous les UNIX et Linux 64 bits unsigned long sont 64 bits.
  • Trosset unsigned long n'est PAS 64 bits sur 64 bits variantes d'UNIX. Il est 32 bits sur 64 bits solaris à l'aide de gcc. Une fois, j'ai eu une expérience douloureuse d'apprentissage que c'est 64bits sur linux.
  • À partir de ce qui est expliqué là: unix.org/version2/whatsnew/lp64_wp.html, 64 bits solaris doit être une exception à UNIX être LP64.
InformationsquelleAutor Undefined | 2011-08-09