В следующем коде я пытаюсь вывести значение переменной unit64_t
, используя printf()
. Компиляция кода с помощью gcc возвращает следующее предупреждение:
warning: format '% x ожидает аргумент типа unsigned int, но аргумент 2 имеет тип 'uint64_t [-Wformat =]
Код:
#include <stdio.h>
#include <stdint.h>
int main ()
{
uint64_t val = 0x1234567890abcdef;
printf("val = 0x%x\n", val);
return 0;
}
Выход:
val = 0x90abcdef
Ожидаемый результат:
val = 0x1234567890abcdef
Как я могу вывести 64-битное значение в виде шестнадцатеричного целого с помощью printf()
? В этом случае спецификатор x
кажется неправильным.