В следующем коде я пытаюсь вывести значение переменной 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 кажется неправильным.