我在用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/