如何使用_printf_p函数输出字符常量?

VS里有个非标准的_printf_p函数,它可以在格式控制符内使用位置参数。例如

_printf_p ("%1$o %1$x %1$u\n", 123U);

等价于

printf ("%o %x, %u\n", 123U, 123U, 123U);

然而在输出字符常量时,

printf ("%#x %c\n", 'A', 'A');

可以正常输出,但是

_printf_p ("%1$#x %1$c\n", 'A');

就会在运行时出错
这是什么原因造成的?

报什么错呢?截张图吧。还有函数名和括号中间不要有空格哟~

看下这篇博客,也许你就懂了,链接:printf()函数输出数据格式汇总