我可以使用哪些格式说明符?

时间:2013-05-13 10:50:40

标签: c format specifications

我正在使用带有windows的code :: blocks来编程。最近,我遇到了一些问题,试图找出存储在浮点数,long long等地址中的地址和值。我发现我需要使用“I64d”而不是“lld”。是否有一个我必须使用的格式说明符列表而不是“普通”格式说明符(例如“d”,“ld”,“lld”等)?感谢。

1 个答案:

答案 0 :(得分:0)

所有格式说明符都显示在标准中。当前的C11标准显示7.20.6.1 The fprintf function中的“正常”。

但是,uint16_t中还定义了“额外”整数类型(例如stdint.h)。用作这些类型的格式说明符的相应fprintf宏包含在inttypes.h中,并在标准7.8.1 Macros for format specifiers中详细说明。

一个例子是:

int16_t val = 42;
printf ("val = %2" PRId16 "\n", val);

请注意,fscanf方也有等价物,其中宏以SCN而不是PRI开头。