Tengo lo siguiente
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
Recibo la siguiente advertencia al compilar:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Cuando ejecuté esto usando una férula, obtuve lo siguiente:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Muchas gracias por cualquier consejo,
size_t
es 'z', como en "%zu"
.
uint32_t
, pero falta size_t
. La respuesta de @ u0b34a0f6ae incluye ambos.
uint32_t
con<stdint.h>
o<inttypes.h>
; si desea utilizar esos tipos, debe actualizar a C89. Como extensión, es probable que GCC le permita usarlos, pero C89 no tenía tal soporte.