警告:返回类型默认为’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节“类型说明符”:
-
“每个类型说明符列表应为以下集合之一:[…] + int , signed , signed int 或no type specifiers ”。
-
在语义的第二段中:“除了比特字段[blabla]”之外,每个[…]集都指定相同的类型。 所以这意味着“没有类型说明符”与int相同。
在C99中,删除了“或无类型说明符”部分。 (但你仍然可以在没有int部分的情况下编写签名 。)