全局函数和静态函数的区别
目录
在C语言中函数默认都是全局的,使用关键字static可以将函数声明为静态,函数定义为static就意味着这个函数只能在定义这个函数的文件中使用,在其他文件中不能调用,即使在其他文件中声明这个函数都没用。
对于不同文件中的staitc函数名字可以相同。
函数类型 | 作用域 | 生命周期 | 存储位置 |
---|---|---|---|
全局函数 | 项目中所有文件 | 从程序创建到程序销毁 | 代码区 |
静态函数 | 定义所在的文件中 | 从程序创建到程序销毁 | 代码区 |
注意:
- 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰。
- 同一源文件中,允许全局变量和局部变量同名,在局部变量的作用域内,全局变量不起作用。
- 所有的函数默认都是全局的,意味着所有的函数都不能重名,但如果是staitc函数,那么作用域是文件级的,所以不同的文件static函数名是可以相同的。
参考:
[1]C基础讲义2018修订版(黑马程序员)