J'ai ce qui suit
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
J'obtiens l'avertissement suivant lors de la compilation:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Quand j'ai exécuté ceci en utilisant une attelle, j'ai obtenu ce qui suit:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Merci beaucoup pour tout conseil,
size_test «z», comme dans "%zu".
uint32_t, mais elle manque size_t. La réponse de @ u0b34a0f6ae comprend les deux.
uint32_tde<stdint.h>ou<inttypes.h>; si vous souhaitez utiliser ces types, vous devez mettre à niveau vers C89. En tant qu'extension, il est probable que GCC vous autorise à les utiliser, mais C89 ne disposait pas d'un tel support.