在int main()之前声明Shortf函数时,获取“返回类型默认为'int'”警告。为什么?

时间:2014-01-12 20:22:57

标签: c function types return warnings

#include <stdio.h>
int w=7,v=0;
shortf(short a, short *b)
{
    a++;(*b)++;w++;v++;
    printf("13: %d %d %d",a,v,w); return a;
}
int main()
{
    return 0;
}

这是我的代码的一部分。这是我大学的一位老师给我的,但是当我写这篇文章时,我得到了10多个警告和错误,这就是其中之一。 第4行我收到“返回类型默认为'int'”警告。为什么? 注意:我只允许使用C。

2 个答案:

答案 0 :(得分:4)

您没有为函数shortf声明返回类型。因此,编译器警告您将使用默认类型int

您应该始终声明返回值类型。我的猜测是代码刚刚被错误地转录。我认为应该是:

short f(short a, short *b)

答案 1 :(得分:1)

您忘记声明函数shortf的返回类型。在C89中,如果省略函数的返回类型,则假定该函数返回值int类型(默认情况下)。它应该是

short shortf(short a, short *b) {...}

在C99及后者中,省略函数的返回类型是违法的。