2015-09-01 39 views
-2

我一直在试图找出为什么我的代码口口声声说有第5行的错误我已经多次检查的话其实我不知道什么语法错误用下面的代码:语法混乱用C

#include <stdio.h> 

void drawTriangle(int size){ 
     for(int i=1; i<=size; i++){ 
       for(int j = 1 ; j <=size-i; j++){ 
         printf(" "); 
         for(int j = 1; j <= 2*i-1;j++){ 
           printf("*"); 

           }printf("\n"); 
         } 
       } 

} 



int main(void){ 
drawTriangle(1); 
drawTriangle(5); 
drawTriangle(6); 
return 0; 
} 

错误解释说,有上线5附近意外的标记“(”也行5上一个语法错误,说“无效drawTriangle(INT大小){”

+2

无法重现; 'gcc -Wall -std = c99 test.c'不会发出警告。 –

+0

请告诉我们错误在哪行,以及确切和完整的构建日志是。 –

+0

我编译过没有错误。这是当我尝试执行它,它给了我错误 – user3773272

回答

5

您正在尝试运行C源作为一个shell脚本,这是行不通的。你首先要编译源到目标文件,升墨目标文件到可执行程序,并然后就可以运行完成的程序。

我建议你试试下面的命令:

$ gcc -Wall -std=c99 -c test.c -o test.o 
$ gcc test.o -o test 
$ ./test 

对于像你这样简单的程序,这是只有一个或两个文件,那么你可以编译和链接在一个命令:

$ gcc -Wall -std=c99 test.c -o test 
$ ./test 

顺便说一句,它通常是一个坏主意来命名的POSIX环境(如Linux或OSX)test一个可执行程序,因为有一个标准的shell命令调用test因为我们如果你写test而不是./test,你很可能会使用标准程序,而不是你自己的。

+1

注意:他需要添加'-std = c99'标志来编译这个特殊的代码。建议使用'-std = c99 -pedantic -Wall -Werror'。 –

+0

'$ gcc -Wall -std = c99 test.c -o test &&。/ test'将在编译成功时执行二进制文件。 – SnakeDoc

2

你试图运行你的源文件为可执行:

./test.c 

这不是它的工作原理。你需要编译你的源代码到一个可执行文件并运行它。

gcc -std=c99 -o test test.c 
./test