哪种格式字符串适用于来自int32_t
的{{1}}?
我试图打印价值,而我发现的是我本应该使用的:
<stdint.h>
来自("... %" PRId32 "...\n", value)
,但我得到的只是通常的&#39; <inttypes.h>
&#39;消息。
format %d expects argument of type int, but argument 2 has type int32_t
常规格式字符串无法使用它。那么我可以使用哪种格式字符串?
编辑1:我编辑了它,因为有很多误解;我已经包含了两个标题。
编辑2:添加实际功能(省略包含和动态分配;其中的所有内容都将被分配):
#include <stdint.h>
#include <inttypes.h>
int32_t variable = 99;
printf("Value: %" PRId32 "\n", variable);
编辑3:就像那样,错误完全不同。 struct stuff {int32_t * array[3];}
printf("Value: %" PRId32 "\n", stuff->array[0]);
前面不应该有array
。
答案 0 :(得分:2)
我相信你误解了这个错误。实际错误是。
format %d expects argument of type int , but argument 2 has type int32_t *.
注意最后的*
。您正在传递一个指向期望整数的指针。你必须取消引用指针:
printf("Value: %" PRId32 "\n", *stuff->array[0]);