c - (GCC) printf 格式字符串中的美元符号

标签 c gcc format printf

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

相关文章:

c - 从 Go 包装 FUSE

c++ - 处理客户端连接的最有效方式(套接字编程)

c - 双和长双: are they same on my computer?

linux - 使用 LD_LIBRARY_PATH 出现段错误

python-3.x - Python 3 中的自定义文件类型

mysql - 如何处理mysql日期格式?

c - 它不允许我将变量存储到结构中的数组

c - 为什么 gcc 不链接 SDL 2.0 C 项目? (苹果系统)

静态文件中的 C 符号可见性

javascript - 在类似于 C# 的 JavaScript 中格式化数字