Eu tenho o seguinte
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
Recebo o seguinte aviso ao compilar:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Quando fiz isso usando uma tala, obtive o seguinte:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Muito obrigado por qualquer conselho,
size_t
é 'z', como em "%zu"
.
uint32_t
, mas não existe size_t
. A resposta de @ u0b34a0f6ae inclui ambos.
uint32_t
de<stdint.h>
ou<inttypes.h>
; se você quiser usar esses tipos, deve atualizar para o C89. Como uma extensão, é provável que o GCC permita que você os use, mas o C89 não tinha esse suporte.