在C中声明函数之前调用函数会发生什么?

如果我们不使用某些函数原型,并且函数主体在该函数的调用语句之后的某个部分中声明。在这种情况下,编译器认为默认返回类型是整数。但是,如果函数返回其他某种类型的值,则会返回错误。如果返回类型也是整数,则它将正常工作,有时这可能会生成一些警告。

范例程式码

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function);
}
char function() {
   return 'T'; //return T as character
}

输出结果

[Error] conflicting types for 'function'
[Note] previous implicit declaration of 'function' was here

现在,如果返回类型是整数,则它将起作用。

范例程式码

#include<stdio.h>
main() {
   printf("The returned value: %d\n", function());
}
int function() {
   return 86; //return an integer value
}

输出结果

The returned value: 86