在这里,我们将看到为什么要在C语言中使用函数原型。函数原型用于告诉编译器参数的数量和函数参数所需的数据类型,还告诉函数的返回类型。通过此信息,编译器将在调用之前交叉检查函数签名。如果未提及函数原型,则可能会在编译时带有一些警告,并且有时会生成一些奇怪的输出。
如果某个函数在某处被调用,但是其主体尚未定义,即在当前行之后定义,则可能会产生问题。编译器找不到什么功能和什么签名。在这种情况下,我们需要运行原型。如果函数是在之前定义的,那么我们不需要原型。
#include<stdio.h> main() { function(50); } void function(int x) { printf("The value of x is: %d", x); }
输出结果
The value of x is: 50
这显示了输出,但是显示了一些警告,如下所示:
[Warning] conflicting types for 'function' [Note] previous implicit declaration of 'function' was here
现在使用函数原型,它可以毫无问题地执行。
#include<stdio.h> void function(int); //prototype main() { function(50); } void function(int x) { printf("The value of x is: %d", x); }
输出结果
The value of x is: 50