5

我刚刚发现了一些非常有趣的东西,它是由我的错字引入的。这是一个非常简单的代码脚本示例:

printf("A" "B");

结果将是

$> AB

有人可以解释这是怎么发生的吗?

4

3 回答 3

8

作为 C 标准的一部分,将彼此相邻的字符串文字连接起来:

对于 C(引用 C99,但 C11 在 6.4.5p5 中有类似的东西):

(C99,6.4.5p5)“在翻译阶段 6,由任何相邻字符序列和相同前缀的字符串文字标记指定的多字节字符序列连接成单个多字节字符序列。”

C++ 有类似的标准。

于 2013-04-22T20:13:08.950 回答
2

这是标准行为,在将很长的字符串常量拆分为多行时非常有用。

于 2013-04-22T20:13:53.390 回答
1

这是字符串连接,是 C 标准的一部分。任何两个或多个连续的字符串文字组合成一个。

于 2013-04-22T20:13:03.013 回答