C语言函数原型的作用 您所在的位置:网站首页 matlab设计一个函数函数原型为MinPESt C语言函数原型的作用

C语言函数原型的作用

2024-07-12 14:20| 来源: 网络整理| 查看: 265

函数原型(Function Prototype):即函数声明给出了函数名、返回值类型、参数列表(重点是参数类型)等与该函数有关的信息。

函数原型的作用:告诉编译器与该函数有关的信息,让编译器知道函数的存在,以及存在的形式,即使函数暂时没有定义,编译器也知道如何使用它。 有了函数声明,函数定义就可以出现在任何地方了,甚至是其他文件、静态链接库、动态链接库等。但是如果函数本身带static修饰,那么作用域是当前文件,从声明位置或者定义位置,到文件结尾。如果函数没有static,那么作用域为整个工程或者说是项目。

单文件例子:

#include //函数声明 int sum(int m, int n); //也可以写作int sum(int, int); int main(){ ... int result = sum(begin, end); return 0; } //函数定义 int sum(int m, int n){ ... return sum; }

有人会说:将函数原型删去,并且直接在原来的位置上使用函数定义,对程序本身的使用是没有任何影响的。

事实上举个简单例子:当两个函数互相调用的时候,函数原型的作用就凸显出来了:

void fun1(int a) { if (a > 0) { fun2(a); }else { return; } } void fun2(int a) { if (a < 0) { fun1(a); }else { return; } }

对于单个源文件的程序,通常是将函数定义放到 main() 的后面,将函数声明放到 main() 的前面,这样就使得代码结构清晰明了,主次分明。 使用者往往只关心函数的功能和函数的调用形式,很少关心函数的实现细节,将函数定义放在最后,就是尽量屏蔽不重要的信息,凸显关键的信息。将函数声明放到 main() 的前面,在定义函数时也不用关注它们的调用顺序了,哪个函数先定义,哪个函数后定义,都无所谓了。

而在实际开发中,几千上万行、百万行的代码很常见,将这些代码都放在一个源文件中不仅检索麻烦,而且打开文件慢,所以必须将这些代码分散到多个文件中。对于多个文件的程序,通常是将函数定义放到源文件(.c文件)中,将函数的声明放到头文件(.h文件)中,使用函数时引入对应的头文件就可以,编译器会在链接阶段找到函数体。 我们在使用 printf()、puts()、scanf() 等函数时引入了 stdio.h 头文件,很多初学者认为 stdio.h 中包含了函数定义(也就是函数体),只要有了头文件就能运行,其实不然,头文件中包含的都是函数声明,而不是函数定义,函数定义都放在了其它的源文件中,这些源文件已经提前编译好了,并以动态链接库或者静态链接库的形式存在,只有头文件没有系统库的话,在链接阶段就会报错,程序根本不能运行。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有