我有以下内容
size_t i = 0;
uint32_t k = 0;
printf("i [ %lu ] k [ %u ]\n", i, k);
Run Code Online (Sandbox Code Playgroud)
编译时我收到以下警告:
format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Run Code Online (Sandbox Code Playgroud)
当我使用夹板运行时,我得到以下内容:
Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Run Code Online (Sandbox Code Playgroud)
非常感谢任何建议,
如果我有一个整数变量,我可以使用sscanf格式说明符%d,如下所示.
sscanf (line, "Value of integer: %d\n", &my_integer);
Run Code Online (Sandbox Code Playgroud)
我在哪里可以找到格式说明uint8_t,uint16_t,uint32_t和uint64_t?
uint64_t可能有%lu.
我需要使用printf()来打印uint16_t.这个SO答案(如何打印uint32_t和uint16_t变量值?)说我需要使用inttypes.h.
但是,我正在使用嵌入式系统,并且inttypes.h不可用.当uint16_t的格式说明符不可用时,如何打印uint16_t?
我一直在阅读这篇文章,并且怀疑打印此数据类型的正确且可移植的方法是什么?
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
Run Code Online (Sandbox Code Playgroud)
也签了。