【发布时间】:2014-10-17 02:35:30
【问题描述】:
我正在移植一些 gcc 代码,遇到错误“表达式:(不正确的格式说明符),0”。我检查了传递给 sprintf(由我定义)及其 %qi 的内容。从我在谷歌看到的,它是某种 c99 的东西。 msvc 兼容版本是什么(如果有)?
说明符的用法如下:
(void)snprintf(val, 64, "%"PRIi64, node_data->intval);
并定义:(在项目附带的 inttypes.h 中)
#define __PRI_64_LENGTH_MODIFIER__ "q"
#define PRIi64 __PRI_64_LENGTH_MODIFIER__ "i"
node_data->intval 似乎是 uint64_t
【问题讨论】:
-
您可以在此处查找适合您的案例说明符:msdn.microsoft.com/en-us/library/hf4y5e3w.aspx
-
如果您使用 %qi 提供有关您在 sprintf 中使用的内容的更多信息,这将为回答者提供更多信息。
-
我还没有找到它,我怀疑它在某个地方的宏中
-
我想我找到了,给我一点时间来弄清楚它是如何组合在一起的
-
我想我也找到了等价物 - %I64i
标签: visual-c++ c99