警告:返回类型默认为’int’

我是Linux用户,他开始学习C,我正在尝试编译我输入的这个源:

#include  main() { float c,d; c = 10215.3; d = c / 3; printf("%3.2f\n",d); return 0; } 

它使用我编写的makefile编译:

 cc -Wall -g printf.c -o printf 

但是我收到了这个警告:

printf.c:2:1:警告:返回类型默认为’int'[-Wreturn-type]

它编译代码,我得到了所需的输出,但我想了解这意味着什么

 main() 

应该

 int main() 

在C89中,默认的返回类型被假定为int ,这就是它的工作原理。

在C89中,默认返回类型是int 。 在C99中删除了此默认值,编译器有助于提醒您在main()之前没有int的 C样式已过期。

请参见C89规范第3.5.2节“类型说明符”:

  • “每个类型说明符列表应为以下集合之一:[…] + intsignedsigned int 或no type specifiers ”。

  • 在语义的第二段中:“除了比特字段[blabla]”之外,每个[…]集都指定相同的类型。 所以这意味着“没有类型说明符”与int相同。

在C99中,删除了“或无类型说明符”部分。 (但你仍然可以没有int部分的情况下编写签名 。)