Tengo el siguienteespecificadores de formato printf para uint32_t y size_t
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
me sale el siguiente mensaje de advertencia al compilar:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Cuando me encontré con esto usando una férula me dieron el siguiente:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Muchas gracias por cualquier consejo,
C89 no admite 'uint32_t' de' 'o' '; si desea utilizar esos tipos, debe actualizar a C89. Como una extensión, es probable que GCC le permita usarlos, pero C89 no tenía dicho soporte. –
Y el modificador oficial de formato C99 para 'size_t' es 'z', como en' "% zu" '. –
http://stackoverflow.com/questions/1401526/how-to-use-printf-to-display-off-t-nlink-t-size-t-and-other-special-types –