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

最佳答案

标准中显示了所有的格式说明符。当前的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开头。

关于c - 我可以使用哪些格式说明符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16520312/

10-11 21:17