Why can two string literals separated by a space, tab or \"\\n\" be compiled without an error?
int main()
{
char * a = \"aaaa\" \"bbbb\";
}
String literals placed side-by-side are concatenated at translation phase 6 (after the preprocessor). That is,
"Hello," " world!"
yields the (single) string"Hello, world!"
. If the two strings have the same encoding prefix (or neither has one), the resulting string will have the same encoding prefix (or no prefix).
(source)