C 中的语法混淆

Syntax Confusion in C

我一直在试图弄清楚为什么我的代码一直说第 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;
}

该错误说明第 5 行靠近意外标记“(”以及第 5 行 'void drawTriangle(int size){'

存在语法错误

您正在尝试 运行 作为 shell 脚本的 C 源代码,但这行不通。你首先必须编译源代码到目标文件,link目标文件到可执行程序,然后就可以运行完成程序了。

我建议您尝试这些命令:

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

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

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

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

您正在尝试 运行 您的源文件作为可执行文件:

./test.c

事情不是这样的。您需要将您的源代码编译成可执行文件,然后运行那个。

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