七、用函数实现模块化程序设计——内部函数和外部函数

函数本质上是全局的,因为定义一个函数的目的就是要被其他函数所调用。根据函数能否被其他源文件调用,将函数区分为内部函数和外部函数。

内部函数

如果一个函数只能被本文件中其他函数所调用,它称为内部函数。在定义内部函数时,再函数名的函数类型的前面个加static,即static 类型名 函数名(参数表);内部函数又称为静态函数,因为它是用staticz声明的。使用内部函数,可以使函数的作用域只局限于所在文件。这样,在不同的文件中即使有同名的内部函数,也互相不干扰,不必担心所用函数是否会与其他文件模块中的函数同名。
通常把只能由本文件使用的函数和外部变量放在文件的开头,前面都冠以static使之局部化,其他文件不能引用。这就提高了程序的可靠性。

外部函数

(在定义函数时在函数首部的最左端加关键字extern,则此函数是外部函数,可供其他文件调用。)
C 语言规定,如果在定义函数时省略extern,则默认为外部函数。
在需要调用此函数的其他文件中,需要对此函数作声明(不要忘记,即使在本文件中调用一个函数,也要用函数原型进行声明)。在对此函数作声明时,要加关键字extern,表示该函数“是在其他文件中定义的外部函数。
使用extern声明就能够在本文件中调用在其他文件中定义的函数(或者说把该函数的作用域扩展到本文件。)
由于函数在本质上是外部的,在程序中经常要调用其他文件中的外部函数,为了方便编程,C 语言允许在声明函数时省写extern,但作用相同。
函数原型的作用:
用函数原型能够把函数的作用域扩展到定义函数的文件之外(不必使用extern)。只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。

本章小结

在本章中接触到一些重要的概念和方法,这些对于一个程序工作者来说,是必须了解和掌握的。尤其在完成一定规模和深度的程序设计时,会用到本章介绍的知识和方法。希望读者能认真消化这些内容,尽量多做些习题,多上机实践,为以后的深入学习和编程打下良好的基础。

猜你喜欢

转载自blog.csdn.net/lijiahao1212/article/details/129967601
今日推荐