函数本质上是全局的,因为一个函数要被另外的函数调用,也可以指定函数不能被其他文件调用。根据能否被其他源文件调用,将函数区分为内部和外部函数。
内部函数:(也称静态函数)
只能被本文件中其他函数所调用。定义内部函数格式如下:
static 类型标识符 函数名(形参表)
如:static int fun(int x,int y)
使用内部函数,可以使函数的作用域只局限于所在的文件,在不同文件中有同名的内部函数,互不干扰。这样不同的人可以分别编写不同的函数,而不必担心所用函数是否会与其它文件中的函数同名,通常把只能有同一文件使用的函数和外部变量放在同一文件中,在它们前面都冠以static使之局部化,其它文件不能引用。
外部函数:
1.定义函数时,在最左端加上关键字extern ,表示函数是外部函数(在C中,省略extern,隐含为外部函数)
extern int fun(int x,int y)
2.在需要调用此函数的文件中,用extern对函数声明,表示该函数是在其他文件中定义的外部函数。
函数原型能够把函数的作用域扩展到定义该函数的文件之外(不必使用extern),只要在使用该函数的每一个文件中包含该函数的函数原型即可。函数原型通知编译系统:该函数在本文件中稍后定义,或在另一文件中定义。
--来自古老的谭浩强版C程序设计。
原文:http://blog.csdn.net/zz7zz7zz/article/details/41177877