Почему не печатается unsigned int?
Есть printf, есть спецификатор unsigned int - %u; Википедия говорит что диапазон unsigned int от 0 до 4294967295. Но почему когда я делаю так:
{
printf("%u", 4294967295);
return 0;
}
Компилятор gcc мне сообщает что я вывожу long int: " error: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘long int’"?
Ответы (1 шт):
Автор решения: RomanDonw
→ Ссылка
Компилятор присваивает всем числам определённый тип, по приоритету знакового болшего, а не меньшего беззнакового. Думаю, стоит преобразовать это число в нужный тип явно. (В коде ошибки сказано, что функция ожидает число типа unsigned int, однако передано long int.)