Jos*_*shD 17 c compiler-warnings
我是Linux用户,他开始学习C,我正在尝试编译我输入的这个源:
#include <stdio.h>
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]
它编译代码,我得到了所需的输出,但我想了解这意味着什么
Luc*_*ore 21
main()
应该
int main()
在C89中,假定默认返回类型int,这就是它的工作原理.
在 C89 中,默认返回类型是int。这个默认值在 C99 中已被删除,编译器会提醒您main()之前没有int的 C 风格已经过时了。
请参阅 C89 规范第 3.5.2 节“类型说明符”:
“每个类型说明符列表应为以下集合之一: [...] + int、signed、signed int或无类型说明符”。
在语义的第二段中:“每个 [...] 集合都指定相同的类型,除了位字段 [blabla]”。所以这意味着“无类型说明符”与int相同。
在 C99 中,“或无类型说明符”部分被删除。(但是您仍然可以在没有int部分的情况下编写有符号的。)