预处理器指令后出现意外标记-应为换行符

unexpected tokens following preprocessor directive - expected a newline

本文关键字:换行符 意外 指令 处理器 预处理      更新时间:2023-10-16

这是我的代码。

#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a, b, somma, massimo;
printf("Inserire il primo valore: A =");
scanf_s("%d", a);
printf("Inserire il secondo valore: B =");
scanf_s("%d", b);
if (b > 0) {    //1
    printf("B = %d e positivo", b);
} else {
    printf("B = %d e negativo", b);
}
if (a % 2 == 0){    //2
    printf("A = %d e pari", a);
} else {
    printf("A = %d e dispari", a);
}
somma = a + b;  //3
printf("A + B = %d", somma);
if (a < 0) {    //4
    a = -a;
}
if (b < 0) {
    b = -b;
}
massimo = a + b;
printf("Il numero più grande ottenibile con questi due numeri A, B e %d", massimo);
}

当我试图编译时,它会给我这个警告:

1> c:\users\mario\documents\visual studio 2015\projects\controlla a e b\main.c:错误C4335:检测到Mac文件格式:请将源文件转换为DOS或UNIX格式

1> c:\users\mario\documents\visual studio 2015\projects\controlla a e b\main.c(1):警告C4067:预处理器指令后出现意外令牌-应为换行

从文件中删除所有非ASCII字符,或将编辑器和编译器设置为接受UTF-8。

我发现这个错误可能是由于构造错误的#define而出现的,例如:

#define USE_THIS  true;
...
#if USE_THIS
<some code>
#endif

显然你没有使用分号。

这与上面的例子并不完全相关,但我在这里包含了它,以防有人搜索此错误消息。