我在用 C 编写的源代码中看到了以下行:
printf("%2$d %1$d", a, b);
这是什么意思?
最佳答案
这是一个 extension to the language added by POSIX (符合 C11 的行为应如@chux 的回答中所述)。符号 %2$d
与 %d
(输出有符号整数)的含义相同,除了它使用给定的基于 1 的数字格式化参数(在您的情况下它是第二个参数, b
).
因此,当您运行以下代码时:
#include <stdio.h>
int main() {
int a = 3, b = 2;
printf("%2$d %1$d", a, b);
return 0;
}
您将在标准输出中得到 2 3
。
更多信息可以在 printf man pages 上找到.
关于c - (GCC) printf 格式字符串中的美元符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19327441/