printf и %llx в GCC под Windows 64x

Я пытаюсь избавиться от ложного предупреждения в своей программе. В Windows 64 (в Linux такого предупреждения нет) этот оператор:

printf("%llu",UINT64_MAX);

генерирует следующее предупреждение:

warning: unknown conversion type character 'l' in format [-Wformat]|

Вывод выглядит правильным, и предупреждения быть не должно. Наиболее релевантным сообщением, связанным с gcc, которое я могу найти, является этот отчет об ошибке за 2008 год http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37768

. Если я правильно понимаю, это предупреждение связано с тем, что под капотом gcc вызывает MSVC printf, который не совместим с C99 и не может понять формат unsigned long long в printf. На той же странице предлагается решение — использовать что-то под названием gnu_printf. Я пытался погуглить, но не нашел заголовка для включения.

Итак, вопрос в том, как с этим обращаться, чтобы быть переносимым? Я просто хочу избавиться от предупреждения правильным и небрежным способом.

14
задан bolov 1 March 2018 в 08:57
поделиться