这个海湾合作委员会警告是什么意思?



这是代码,直接来自"C编程语言,第二版"。

#include <stdio.h>
main ()
{
printf("hello, worldn");
}

这是 GCC 错误:

user@root:~/bin$ gcc helloworld.c 
helloworld.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit- int]
main ()^~~~ 

编辑:我刚刚意识到代码确实可以编译。我只是没有意识到它已经覆盖了我编译的另一个程序的文件。我已经编辑了问题本身,因为我认为这更有价值。(最初我问为什么这个程序不编译(

您尚未包含main的返回类型。您可能希望在末尾返回 0,因为这是没有错误的标准退出代码。修改后您的代码将是

#include <stdio.h>
int main() {
printf("hello, worldn");
return 0;
}

尝试:

使用int main(),因为 int 是 main 的返回类型。

编辑:

在 C89 中,默认返回类型为 int。此默认值已在 中删除 C99 和编译器很有帮助,提醒你你的 C 风格没有 main(( 之前的 int 已过时。

这不是错误,只是一个警告。您的代码确实可以编译,尝试使用./a.out运行生成的二进制文件

GCC 只是警告您没有为 main 指定返回类型,它会自动返回一个整数。

您的主要签名是错误的。您应该考虑阅读此答案以获得 main 函数的C11标准化签名: https://stackoverflow.com/a/2108208/8141369

最新更新