int32_t的格式字符串?

时间:2017-04-06 18:26:14

标签: c

哪种格式字符串适用于来自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

1 个答案:

答案 0 :(得分:2)

我相信你误解了这个错误。实际错误是。

format %d expects argument of type int , but argument 2 has type int32_t *.

注意最后的*。您正在传递一个指向期望整数的指针。你必须取消引用指针:

printf("Value: %" PRId32 "\n", *stuff->array[0]);