流浪\ [反斜杠]在C代码中是否有任何含义?

kal*_*lla 5 c

对于代码:

#include <stdio.h>
int main(void) {
\
printf("Test");
}
Run Code Online (Sandbox Code Playgroud)

通过编译gcc -Wall -Wextra -Wfatal-errors test.c不会发出任何警告。

但是,对于其他杂散字符,编译会导致以下错误:

test.c:3:1: error: stray ‘`’ in program
 `
 ^
compilation terminated due to -Wfatal-errors.
Run Code Online (Sandbox Code Playgroud)

我尝试了相同的尝试,但使用了不同的流浪字符,每次遇到错误时,这些错误的范围是从expected primary-expression before the tokenvalue computed is not used。我也期望反斜杠字符也有类似的警告/错误。

那么,在C代码中是否有一个不加空格的斜线反斜杠没有意义?

我知道一个事实,冗余分号(;)在C代码中没有作用,因此这些以某种方式相关吗?

dbu*_*ush 4

反斜杠正在转义其后面的换行符。它用于在空格相关的情况下逻辑地组合两行或多行,例如在字符串常量的中间或作为宏定义的一部分,以便它可以跨越多行。

在这种特殊情况下,空格并不重要,因此对代码没有影响。

如果您要在 后面添加空格\,您会收到警告,如果您在这些空格之后添加 ,;您会收到有关 stray 的错误\