Con il seguente codice, sto cercando di restituire il valore di una variabile unit64_t
utilizzando printf()
. Compilare il codice con gcc, restituisce il seguente avviso:Come stampare un numero intero a 64 bit come esadecimale?
avvertimento: formato '% x' si aspetta argomento di tipo 'unsigned int', ma argomento 2 è di tipo 'uint64_t' [-Wformat =]
Il codice:
#include <stdio.h>
#include <stdint.h>
int main()
{
uint64_t val = 0x1234567890abcdef;
printf("val = 0x%x\n", val);
return 0;
}
L'output:
val = 0x90abcdef
uscita prevista:
val = 0x1234567890abcdef
Come posso uscita un valore a 64 bit come un intero esadecimale utilizzando printf()
? L'identificatore x
sembra essere sbagliato in questo caso.
Sede [qui] (http: // StackOverflow. com/domande/9225567/how-to-print-un-Int64-t-type-in-c/9.225.648 # 9.225.648). in pratica, usa la macro 'PRIx64' da' '. –