fun(int x) {
if(x<=0) return 1;
return fun(x-1)+x;
}
void main()
{
int a = fun(7);
printf(" %d",a);
getch();
}
我在此函数C
中有fun
这个简单的代码返回值,但我没有指定任何返回类型。据我所知,默认的返回类型是void
答案 0 :(得分:2)
没有任何名为 deafult return type ,在这种情况下,返回类型已被省略,编译器已选择将其视为int
。注意
TL; DR 根据最新的C标准,这是无效代码。
引用C99
前言,第7页
第二版的主要变化包括:
...
- 删除隐式
int
也就是说,标准还规定,对于托管环境,main()
的签名至少应为int main(void)
。
注:
Pre C-99允许省略类型默认为int
,并且一些编译器可能仍然支持它以保持与遗留代码的兼容性。请勿依赖或尝试使用此功能。
答案 1 :(得分:1)
在C
语言中,默认情况下,return
类型的函数为int
。如果您不从这些函数返回int(没有显式返回类型),则行为未定义。