简体   繁体   中英

two strings separated by blank being concatenated automatically

I just found something very interesting which was introduced by my typo. Here's a sample of very easy code script:

printf("A" "B");

The result would be

$> AB

Can someone explain how this happens?

As a part of the C standard, string literals that are next to one another are concatenated:

For C (quoting C99, but C11 has something similar in 6.4.5p5):

(C99, 6.4.5p5) "In translation phase 6, the multibyte character sequences specified by any sequence of adjacent character and identically-prefixed string literal tokens are concatenated into a single multibyte character sequence."

C++ has a similar standard.

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

This is string concatenation, part of C standard. Any two or more consecutive string literals are combined into one.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM