警告:返回类型默认为“INT” [-Wreturn型](warning: return type d

2019-06-28 04:50发布

我是谁开始学习C一个Linux用户,我试图编译这个来源,我输入:

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

这编译这个使用make文件,我写道:

cc -Wall -g     printf.c   -o printf

但我发现了这样的警告:

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

它编译的代码,我得到需要的结果,但我想知道这是什么意思

Answer 1:

main()

应该

int main()

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



Answer 2:

在C89,默认返回类型为int。 在C99,删除了此默认和编译器是有益的提醒你,你的C风格与之前的主没有INT()是过时的。

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

  • “类型说明符的每个列表应为以下组之一:[...] + INT, 签署签署int 或无类型说明符 ”。

  • 而在语义第二款:“每[...]组指定类型相同,不同之处在于对位域[布拉布拉]”。 因此,这意味着“无类型说明符”是一样的INT。

在C99中,部分“或无类型说明符”被去除。 (但你仍然可以乱写的INT部分签名 。)



文章来源: warning: return type defaults to ‘int’ [-Wreturn-type]