我不知道为什么这个程序中会出现这个语法错误。
#include <stdio.h>
#include <stdbool.h>
#define N 30
int main(void) {
char sieve[N], *sp;
int number;
for(sp = sieve; sp < sieve + N;)
*sp++ = true;
for(number = 3;; number += 2) {
sp = sieve + (number – 3)/2;
if(sp >= sieve + N)
break;
while(sp += number, sp < sieve + N)
*sp = false;
}
printf("2\n");
for(number = 3, sp = sieve; sp < sieve + N; number += 2, sp++) {
if(*sp)
printf("%d\n", number);
}
return 0;
}
它出现在第 13 行:sp = sieve + (number - 3)/2;
error: stray '\342' in program
error: stray '\200' in program
error: stray '\223' in program
error: expected '>' before numeric constant.
我也尝试过另一个编译器,我也尝试过这种方式
sp = sieve + ((number - 3)/2);
,但没有任何反应。