函数没有在C中指定的返回类型

San*_*a S 5 c function-declaration

我在C中遇到了这段代码:

#include <stdio.h>
main( )
{
 int i = 5;
 workover(i);
 printf("%d",i);
}
workover(i)
int i;
{
 i = i*i;
 return(i);
}
Run Code Online (Sandbox Code Playgroud)

我想知道函数"修井"的声明是如何有效的?当我们没有提到函数的返回类型时会发生什么?(我们可以返回任何内容吗?).参数也只是一个变量名,这是如何工作的?

Frx*_*rem 16

如果未指定返回类型或参数类型,则C将隐式声明为int.

这是早期版本的C(C89和C90)的"功能",但现在通常被认为是不好的做法.由于C99标准(1999)不再允许这样做,因此针对C99或更高版本的编译器可能会给您一个类似于以下内容的警告:

program.c: At top level:
program.c:8:1: warning: return type defaults to ‘int’
 workover(i)
 ^
Run Code Online (Sandbox Code Playgroud)