奇怪的错误编译c代码

时间:2013-02-24 04:18:24

标签: c gcc

我有以下代码我正在尝试构建

#include stdio.h
#include stdlib.h
#include signal.h
#include wiringPi.h
#include softPwm.h

void control_event(int sig);
int HARD_PWM_PIN=1; Hardware PWM Pin(GPIO18-12)
int SOFT_PWM_PIN=0; Software PWM Pin(GPIO0-11)
int DELAY_MS=10;
int main(void)
{
  (void)signal(SIGINT,control_event);
  (void)signal (SIGQUIT,control_event);
  printf(Hardware and software based PWM test on LEDn);
  if(getuid()!=0) wiringPi requires root privileges
  {
    printf(ErrorwiringPi must be run as root.n);
    return 1;
  }
  if(wiringPiSetup()==-1)
  {
    printf(ErrorwiringPi setup failed.n);
    return 1;
  }
  pinMode(HARD_PWM_PIN,PWM_OUTPUT); setup hardware pwm
  softPwmCreate(SOFT_PWM_PIN,0,100); setup software pwm pin
  int up;
  int down;
  while(1)
  {
    for(up=1;up=5;down--)
    {
      pwmWrite(HARD_PWM_PIN,down);
      softPwmWrite(SOFT_PWM_PIN,down);
      delay(DELAY_MS2);
    }
    delay(DELAY_MS5);
  }
}
void control_event(int sig)
{
  printf(bbExiting...n);
  pwmWrite(HARD_PWM_PIN,0);
  softPwmWrite(SOFT_PWM_PIN,0);
  delay(100); wait a little for the pwm to finish write
  exit(0);
}

但我一直得到以下错误,这只是其中的一部分,但它们与奇数符号和数字完全相同。

test1.c:20:1: error: stray â\302â in program
test1.c:20:1: error: stray â\240â in program
test1.c:21:1: error: stray â\302â in program
test1.c:21:1: error: stray â\240â in program
test1.c:22:1: error: stray â\302â in program
test1.c:22:1: error: stray â\240â in program
test1.c:23:1: error: stray â\302â in program
test1.c:23:1: error: stray â\240â in program
test1.c:23:1: error: stray â\302â in program
test1.c:23:1: error: stray â\240â in program
test1.c:24:1: error: stray â\302â in program
test1.c:24:1: error: stray â\240â in program
test1.c:24:1: error: stray â\302â in program
test1.c:24:1: error: stray â\240â in program
test1.c:25:1: error: stray â\302â in program
test1.c:25:1: error: stray â\240â in program
test1.c:26:1: error: stray â\302â in program
test1.c:26:1: error: stray â\240â in program
test1.c:26:38: error: unknown type name âsetupâ
test1.c:26:53: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âpwmâ

可能有什么不对?我从中获取此代码的地方是here

2 个答案:

答案 0 :(得分:3)

您有一些语法错误 -

  • 除了你的编辑器包含unicode字符而不是gcc预期的ASCII。 - “作为后向双引号或前向双引号而不是ASCII 34。”的可能示例。

当您使用非西方字符集或扩展unicode作为默认编码时,您必须小心编辑器设置。

这也是“你的帖子中没有出现字符的原因。

答案 1 :(得分:3)

奇数符号和数字是因为文件中的某些空格实际上不是空格。在复制和粘贴之后,查看链接文件中的一些行:

'void control_event(int sig);\n'
'int HARD_PWM_PIN=1; //Hardware PWM Pin(GPIO18-12)\n'
'int SOFT_PWM_PIN=0; //Software PWM Pin(GPIO0-11)\n'
'int DELAY_MS=10;\n'
'int main(void)\n'
'{\n'
'\xc2\xa0 (void)signal(SIGINT,control_event);\n'
'\xc2\xa0 (void)signal (SIGQUIT,control_event);\n'
'\xc2\xa0 printf("Hardware and software based PWM test on LED\\n");\n'
'\xc2\xa0 if(getuid()!=0) //wiringPi requires root privileges\n'

这些\xc2\xa0是非空格字符( )或八进制302/240

另请注意,您似乎在传输中丢失了多个注释标记(//),这会导致其自身的不同问题,因为编译器正在尝试将注释解释为代码。