Printf int64

Résolu
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 4 juin 2012 à 16:19
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 4 juin 2012 à 17:28
Bonjour,

Il y a quelque temps (Visual Studio 2003/GCC) j'ai participé au développement d'une appli multi-plateforme en 64bit.

Pour moi, il y avait 2 codes différents :
#ifdef WIN32
  sprintf(buffer ,"I64d", nom_int64);
#else
  sprintf(buffer ,"lld", nom_int64);
#endif

Je viens de faire un test sous Visual Studio 2008, il semblerait que la syntaxe Linux fonctionne.

Vous confirmez que cette écriture s'est "standardisée" depuis Visual 2003 ? Je n'ai rien trouvé sur Internet qui confirme cette observation.

Merci
A voir également:

1 réponse

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
4 juin 2012 à 17:28
Bonjour.

D'après ce que j'ai vu:
- http://stackoverflow.com/questions/10631600/unsigned-long-long-vs-unsigned-longportability-point-of-view
- http://stackoverflow.com/questions/2844/how-do-you-printf-an-unsigned-long-long-int

Notemment un point particulier, très intéressant:
This isn't a Linux/UNIX thing, the "ll" length modifier was added to Standard C in C99, if it doesn't work in "Microsoft C" then it is because they are not standards compliant.


Donc tu peux utiliser "ll" tant que le compilateur que tu utilises, supporte la norme C99.

Ici (http://forum.osdev.org/viewtopic.php?f=13&t=18373), il semble confirmer ceci, et apporter une précision très utile. Des macros pour gérer la portabilité sont disponibles dans :
For portable printf() formatting strings, C99 offers . It has printf() and scanf() macros for each of the types defined in <stdint.h>. So, for example, you can print a int64_t with:
printf( "%" PRId64 "\n", x );
Of course, this works only if your implementation (i.e., compiler / library) does support 64-bit values. Which is, after all, kind of a precondition


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
3
Rejoignez-nous