C中的语法混淆

use*_*272 -2 c syntax

我一直试图弄清楚为什么我的代码继续说第5行有错误.我已多次检查它但我不确定以下代码的语法是什么错:

#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;
}
Run Code Online (Sandbox Code Playgroud)

该错误解释了第5行附近的意外标记'('和第5行的语法错误,其中显示'void drawTriangle(int size){'

Som*_*ude 5

您正在尝试将C源作为shell脚本运行,但这不起作用.首先必须将源代码编译为目标文件,将目标文件链接到可执行程序,然后运行完成的程序.

我建议你试试这些命令:

$ gcc -Wall -std=c99 -c test.c -o test.o
$ gcc test.o -o test
$ ./test
Run Code Online (Sandbox Code Playgroud)

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

$ gcc -Wall -std=c99 test.c -o test
$ ./test
Run Code Online (Sandbox Code Playgroud)

顺便说一句,在POSIX环境(如Linux或OSX)中命名可执行程序通常是一个坏主意test,因为还有一个标准的shell命令也被调用test,如果你编写test而不是./test你,那么很可能会使用标准程序和不是你自己的.