首页 > 解决方案 > 杂散的 \ [反斜杠] 在 C 代码中是否有任何意义?

问题描述

对于代码:

#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 tokenvalue computed is not used. 我期待反斜杠字符也会出现类似的警告/错误。

那么,在 C 代码中,后跟没有空格的杂散反斜杠没有意义吗?

我知道冗余分号 (;) 在 C 代码中没有影响,那么这些是否有某种关联?

标签: c

解决方案


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

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

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


推荐阅读