格式字符串的转换规范中引号的含义是什么?

What is the meaning of a quote in the conversion specification of a format string?

我发现我们可以在格式字符串的转换规范中使用一个(或多个)引号。例如:

void f(int i)
{
    printf("%'d\n", i);
}

这段代码编译得很好,并且在没有引号的情况下表现得完全一样。

我想知道这句话是什么意思。它会对 printf 函数的行为产生影响吗?如果不允许,为什么允许这样做?

我在 cppreference 中没有找到相关信息。

这是记录在案的 - 整数用逗号表示

例如

1,000

没有

1000

如果您所在的地区在逗号之间使用 3 位数字

c.f. https://en.wikipedia.org/wiki/Printf_format_string

Cppreference 记录了 C 标准。撇号是对 POSIX 记录的 C 标准的扩展。来自 POSIX fprintf:

The flag characters and their meanings are:

'
(The <apostrophe>.) The integer portion of the result of a decimal conversion ( %i, %d, %u, %f, %F, %g, or %G ) shall be formatted with thousands' grouping characters. For other conversions the behavior is undefined. The non-monetary grouping character is used.