Есть некий код
uint32_t value;
...
printf( "FATAL: Unknown security result: %u\n", value );
Под одну архитектуру это собирается без ошибок. Под другую сборка падает с ошибкой вида
format '%u' expects argument of type 'unsigned int', but argument 2 has type 'uint32_t' {aka 'long unsigned int'}
Как быть в случаях, когда подобный код должен собираться под разные архитектуры? Заворачивать всё в препроцессор или засучить рукава и писать свою нестандартную библиотеку си?