这是直接来自“ The C programming Language,第二版”的代码。
#include <stdio.h>
main ()
{
printf("hello, world\n");
}
这是GCC错误:
user@root:~/bin$ gcc helloworld.c
helloworld.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit- int]
main ()^~~~
edit:我刚刚意识到代码确实可以编译。我只是没有意识到它已经覆盖了我编译的另一个程序的文件。我已经编辑了问题本身,因为我认为这更有价值。 (最初我问为什么这个程序没有编译)
答案 0 :(得分:1)
您尚未包括main
的返回类型。您可能希望在其末尾返回0,因为这是没有错误的标准退出代码。修改后的代码将是
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
答案 1 :(得分:0)
尝试:
使用int main()
,因为int是main的返回类型。
编辑:
在C89中,默认返回类型为int。此默认设置已在中删除 C99和编译器有助于提醒您C语言风格 int main()已过时。
答案 2 :(得分:0)
这不是错误,只是警告。您的代码会编译,尝试使用./a.out
GCC只是警告您未为main指定返回类型,它将自动返回整数。
答案 3 :(得分:0)
您的主要签名有误。您应该考虑阅读此答案,以获取主要功能的C11
标准化签名:
https://stackoverflow.com/a/2108208/8141369