此问题已在此处有答案:
What is the '' operator in the C language?(3个答案)
3年前关闭。
对于代码:
#include <stdio.h>
int main(void) {
\
printf("Test");
}
通过gcc -Wall -Wextra -Wfatal-errors test.c
编译不会给予任何警告。
但是,对于其他杂散字符,编译会导致以下错误:
test.c:3:1: error: stray ‘`’ in program
`
^
compilation terminated due to -Wfatal-errors.
我尝试了同样的方法,用不同的流浪字符,每次我都得到一个错误。这些错误的范围从 expected primary-expression before the token 到 value computed is not used。我也期待反斜杠字符出现类似的警告/错误。
那么,一个不带空格的反斜杠在C代码中没有意义吗?
我知道一个事实,多余的分号(;)在C代码中没有任何作用,那么这些是否有某种联系呢?
3条答案
按热度按时间drkbr07n1#
反斜杠转义了它后面的换行符。它用于在与空白相关的情况下逻辑合并两行或多行,例如在字符串常量的中间或作为宏定义的一部分,以便它可以跨越多行。
在这种特殊情况下,空格并不重要,因此对代码没有影响。
如果你在
\
后面添加空格,你会得到一个警告,如果你在这些空格后面添加;
,你会得到一个关于杂散\
的错误。wwwo4jvm2#
它是行继续符。(你最常在宏中看到它。)trigraph
??/
具有相同的效果。如果后面有空格,那么编译器将发出诊断。
x7rlezfr3#
它拆分一行,以便在下一行继续