在哪里可以找到用于组合字符串的 C 规范?

Where can I find the C specification for combining strings?

当我阅读Xtables的源代码时,我发现了这样的东西。

pr_info("SRC=" NIP6_FMR "DST=" NIP6_FMR "\n",
        NIP6(iph->saddr), NIP6(iph->daddr));

我想知道为什么将字符串作为组合字符串来处理,这种效果是由 pr_info 宏引起的,还是 C 规范的一部分。所以,我写了这段代码,发现它是C规范中定义的行为。

int main(void) {
    char a[] = "aaa" "bb";
    printf("%s\n", a);

    return 0;
}

规范在哪里定义的?我不知道如何搜索规范以及使用什么词来表达行为。

来自6.4.5p8一个例子:-

This pair of adjacent character string literals

"\x12" "3" produces a single character string literal containing the two characters whose values are '\x12' and '3', because escape sequences are converted into single members of the execution character set just prior to adjacent string literal concatenation.

并且在6.4.5p5

中也有说明

In translation phase 6, the multibyte character sequences specified by any sequence of adjacent character and identically-prefixed string literal tokens are concatenated into a single multibyte character sequence.

此外,在第 5.1.1.2 "Translation phases"

部分
  1. Adjacent string literal tokens are concatenated.

强调我的