【发布时间】:2018-01-14 06:14:50
【问题描述】:
当我阅读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;
}
规范在哪里定义?我不知道如何搜索规范以及使用什么词来表达行为。
【问题讨论】:
-
你可以找到它here。它是 N1570 的在线版本,是 ISO 标准发布之前 C11 的最后一个草案。标准本身需要买,但草案很接近。
-
如果您更早地查看代码,您可能会发现
#define NIP6_FMR "%p"(或类似的东西)定义了 格式说明符 将替换NIP6_FMR常量以完成格式字符串.
标签: c string specifications