很多人在问 static 和extern的区别 或者他们的用途,通过看这篇博客以及我写的
全局变量的类型的那篇博客相信大家都会深深的理解他俩的用途和区别。
1.内部函数
如果一个函数只能被本文件中的其他函数所调用,称它为内部函数。内部函数又称为静态函数。在定义内部函数时,在函数名和函数类型前加 static .如下:
static 类型标识符 函数名 ()
{
函数体。
}
使用内部函数,可以使函数的作用域只局限于所在文件,在不同的文件中又同名的内部函数,互不干扰。通常把只能由同一文件使用的函数和外部变量放在一个文件夹中,在它们前面加上static使其局部化,其他文件不能调用。
2.外部函数
除内部函数外,其余的函数都可以被其他文件中的函数所调用,同时在调用的函数的文件上应加上 extern 关键字说明。定义如下:
extern 类型标识符 函数名 ()
{
函数体。
}
c语言规定,如果在定义函数时省略 extern ,则默认为外部函数。