相关疑难解决方法(0)

为什么clang和gcc只有在反斜杠后有空格时才会发出警告,如果C标准说禁止空格?

编译以下代码段时,gcc和clang都只发出警告.注意\下一个后面的空格int:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int \ 
        a = 10;

    printf("%d\n", a);
}
Run Code Online (Sandbox Code Playgroud)

GCC:

main.c:7:6:警告:反斜杠和换行符以空格分隔[默认启用]

铛:

main.c:7:7:警告:反斜杠和换行符以空格分隔int ^

在5.1.1.2的c99标准中,它说:

删除反斜杠字符()后面紧跟一个新行字符的每个实例,拼接物理源代码行以形成逻辑源代码行.

为什么C编译器不符合C标准?我认为只有他们的创作者决定不这样做.我在gcc邮件列表上发现了一条消息,我认为这引起了这种行为:http://gcc.gnu.org/ml/gcc-patches/2000-09/msg00430.html.在那里,他们说这是完成的,因为尾随空格是常见的,他们不想将它们视为错误.这有多常见?

c standards gcc clang backslash

6
推荐指数
1
解决办法
1133
查看次数

标签 统计

backslash ×1

c ×1

clang ×1

gcc ×1

standards ×1