【发布时间】:2014-05-21 07:32:46
【问题描述】:
#define FMT "%-*.*s e = %6ld, chars = %7ld, stat = %3u: %c %c %c %c\n"
这个宏被传递给printf 函数。 %-*.*s 是什么意思?
【问题讨论】:
-
SO 并非旨在替代普通手册页。
printf的格式说明符在此函数的任何手册页中都有描述。 -
我从这个问题中学到了一些东西,所以向我 +1。
-
我认为手册页很难理解以证明这个问题的合理性(我也学到了一些东西,可能是因为它不是 K&R printf 的一部分)。
-
顺便说一句,格式不必是字符串文字;它可以是一个常规指针(例如
char *fmt = "%d"; printf(fmt, 3);)。这意味着您也可以使用 sprintf 以编程方式组装它。它相当少见,但在需要时非常灵活。