Le fonction accepte un type de l’argument, tels que
ou pour un
. Cependant, je ne vois pas quoi que ce soit pour une `` valeur.
Réponses
Trop de publicités?Comme indiqué par d'autres, l'impression de la valeur comme un nombre est assez facile:
printf("%lld", n); // signed
printf("%llu", n); // unsigned
Oh, et bien sûr, c'est différent dans Windows:
printf("%l64d", n); // signed
printf("%l64u", n); // unsigned
Souvent, quand je suis à l'impression des valeurs 64 bits, je trouve utile de les imprimer au format hexadécimal (généralement avec les nombres très grands, ils sont des pointeurs ou des champs de bits).
unsigned long long n;
printf("0x%016llX", n); // "0x" followed by "0-padded", "16 char wide", "long long", "HEX with 0-9A-F"
affichera:
0x00000000DEADBEEF
Btw, "long" ne veut pas dire que beaucoup plus. "int" est la plate-forme par défaut int taille, généralement de 32 bits. "long", c'est généralement de la même taille. En théorie, ils ont différents portabilité sémantique vis-a-vi anciennes plates-formes. "long long" est un nombre de 64 bits et généralement ce que les gens destinés à utiliser que si vraiment ils savent vraiment ce qu'ils faisaient de l'édition d'un morceau de x-plate-forme du code portable. Même alors, ils auraient probablement utilisé une macro au lieu de capturer la sémantique du type (par exemple un uint64_t).
char c; // 8 bits
short s; // 16 bits
int i; // 32 bits (on modern platforms)
long l; // 32 bits
long long ll; // 64 bits
Retour dans la journée, "int" est de 16 bits. Pensez-vous que ça serait maintenant en 64 bits, mais non, cela aurait provoqué un fou des problèmes de portabilité. Bien sûr, ce qui est une simplification de l'arcane et riches en histoire de la vérité. Voir wiki:Integer
Voir [
référence sur cplusplus.com](http://www.cplusplus.com/reference/clibrary/cstdio/printf.html)