所以我一直在尝试用gcc编译器用c来编译这段代码(我发现有很多对c++的引用,但没有对c的引用,所以我问了这个问题),每次我运行程序时,我都会得到错误Badly placed ()'s。所以我把它简化成了一个非常简单的Hello World测试程序,我仍然得到同样的错误。
是什么导致了这个错误?

#include <stdio.h>

int main(int argc, int* argv[])
{
        printf("Hello World\n");
        return 0;
}

最佳答案

似乎您并没有试图执行编译后的二进制文件,但是您有一个运行tcsh的系统,并且您正在将C源代码直接输入该shell:

> tcsh /tmp/badly.c
Badly placed ()'s.

C程序必须首先编译为二进制文件(此处:/tmp/badly),然后必须执行该二进制文件:
> gcc /tmp/badly.c -Wall -o /tmp/badly
/tmp/badly.c:3:5: warning: second argument of 'main' should be 'char **' [-Wmain]
> /tmp/badly
Hello World

正如ouah在他的回答中已经注意到的,当-Wall参数变为gcc时,您也会得到一条信息性消息,即main函数的参数是错误的。

10-08 02:47