C如何在printf语句中编译"senthil""kumar"?

how does C compiles "senthil""kumar" in a printf statement?

我在使用 printf 语句时怀疑 C 语言的基础知识。 好吧,这就是我的代码的样子。

#include<stdio.h>
int main(){
printf("%s %s",("senthil""kumar"),("hello""world"),("stack""overflow");
return 0;}

我有这样的输出, senthilkumar helloworld

但我不知道这段代码是如何工作的。 你能帮我弄清楚它是如何工作的吗... 提前谢谢。

编译器合并了两个连续的字符串文字。

即以下示例是等效的:

// 1:
"foo" "bar"
// 2:
"foobar"
// 3:
#define FOO "foo"
FOO "bar"

您不需要所有这些内括号(另外,末尾缺少 ))。