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