Ho il seguente
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
Ricevo il seguente avviso durante la compilazione:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Quando l'ho eseguito utilizzando splint ho ottenuto quanto segue:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Molte grazie per qualsiasi consiglio,
size_tè "z", come in "%zu".
uint32_t, ma manca size_t. La risposta di @ u0b34a0f6ae include entrambi.
uint32_tda<stdint.h>o<inttypes.h>; se vuoi usare questi tipi, dovresti aggiornare a C89. Come estensione, è probabile che GCC ti consenta di usarli, ma C89 non aveva tale supporto.