我写这篇文章的时候有点不对劲

printf("string1""string2");

令我惊讶的是,它编译并产生了一个连接字符串输出,即
string1string2

这是有效的C吗?
我正在使用gccversion 4.4.1 (Ubuntu 4.4.1-4ubuntu9)

最佳答案

是的。在C解析的早期,连续的字符串文本被连接起来。
6.4.5/4条:
在转换阶段6,由任何相邻字符序列和宽字符串文本标记指定的多字节字符序列被连接到单个多字节字符序列中。如果任何标记是宽字符串文字标记,则生成的多字节字符序列将被视为宽字符串文字;否则,将被视为字符串文字。

09-06 07:01