2013-02-24 185 views
-1

下面我有我试图建立奇怪的错误编译C代码

#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

+1

'int HARD_PWM_PIN = 1;硬件PWM引脚(GPIO18-12)'这几乎不正确的C语法...是'硬件pwm引脚...'是否可以作为注释?在这种情况下缺少'//'。 – 2013-02-24 04:23:29

+2

你可能使用了一个文字处理器,并用'双引号'代替ASCII双引号。不是很好。你#include行不符合任何一种标准格式。 – 2013-02-24 04:30:09

回答

3

你有一些语法错误 -

    从您的编辑器包括Unicode字符,而不是由海湾合作委员会预计ASCII
  • 搁置。 - 对于“一个可能的例子作为一个落后的双引号或向前双引号,而不是ASCII 34

你必须要小心你的编辑器设置时,您使用非西方字符集或扩展的Unicode为您默认编码

这也是为什么“字符不显示在您的文章。

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 s为无间断空格字符( ),或八进制302/240

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