나는 다음이있다
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
컴파일 할 때 다음 경고가 표시됩니다.
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
부목을 사용하여 이것을 실행했을 때 다음과 같은 결과를 얻었습니다.
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
조언에 감사드립니다.
size_t
와 같이 'z'입니다 "%zu"
.
uint32_t
하지만 부족 size_t
합니다. @ u0b34a0f6ae의 대답에는 둘 다 포함됩니다.
uint32_t
에서 지원하지 않습니다 . 이러한 유형을 사용하려면 C89로 업그레이드해야합니다. 확장 기능으로 GCC에서 사용할 수 있지만 C89에는 그러한 지원이 없습니다.<stdint.h>
<inttypes.h>