В C и C ++ допустимо разбивать строковый литерал, потому что препроцессор или компилятор объединить смежные строковые литералы.
const char *zStr = "a" "b"; // valid
Что происходит, когда строковые литералы имеют префикс L
(широкие символы), u
(UTF-16), U
(UTF -32), u8
(UTF-8) и необработанные строковые литералы ( R "foo (это" необработанный строковый литерал "с двойными кавычками) foo"
)?
Например, разрешено следующее:
const wchar_t *zStr = L"a" "b"; // valid?