当我阅读Xtable的源代码时,我发现了这样的东西。
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;
}规范在哪里定义?我不知道如何搜索规范,以及使用什么词来表达这种行为。
发布于 2018-01-14 06:18:09
来自6.4.5p8的一个例子:-
这对相邻的字符串文本
'\x12'生成一个包含两个字符的单字符字符串文本,其值为、、和,因为转义序列在相邻字符串文字级联之前被转换为执行字符集的单个成员。
在6.4.5p5中也说明了这一点
在翻译阶段6,由任意相邻字符序列和同前缀字符串字面标记指定的多字节字符序列被串联成单个多字节字符序列。
此外,在5.1.1.2“翻译阶段”一节中
重点雷
https://stackoverflow.com/questions/48247140
复制相似问题