c++字符串通过并置进行文字连接

c++ string literal concatenation by juxtaposition

本文关键字:文字 连接 字符串 c++      更新时间:2023-10-16

代码

std::string str = "Hello " "world";
std::cout << str << std::endl;

编译并打印CCD_ 1。类似地,

char chr[] = "abc" "def" "ghi";
std::cout << chr << std::endl;

打印CCD_ 2。这是如何以及为什么工作的?

这是[lex.phase]/6 涵盖的行为

将连接相邻的字符串文字标记。

因此,在编译器真正开始编译代码之前,所有只分隔的字符串文字——为什么空白被连接在一起。

"hello " "world";
"hello "                  "world";
"hello " 
"world";

所有生产"hello world";

仅用空格分隔的字符串文字会自动连接,请参阅cppreference