对于代码:
#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 token到value computed is not used。我也期望反斜杠字符也有类似的警告/错误。
那么,在C代码中是否有一个不加空格的斜线反斜杠没有意义?
我知道一个事实,冗余分号(;)在C代码中没有作用,因此这些以某种方式相关吗?
反斜杠正在转义其后面的换行符。它用于在空格相关的情况下逻辑地组合两行或多行,例如在字符串常量的中间或作为宏定义的一部分,以便它可以跨越多行。
在这种特殊情况下,空格并不重要,因此对代码没有影响。
如果您要在 后面添加空格\,您会收到警告,如果您在这些空格之后添加 ,;您会收到有关 stray 的错误\。