C语言之static用法
1,static修饰全局变量
限定变量的作用域。被static修饰的全局变量存储域不变,依然存储在静态存储区,即bss段或data段。但作用域发生改变,被static修饰全局变量只能被本文件的函数访问,对于其他源文件是不可见的,哪怕用extern声明也不可见。
2,static修饰局部变量
限定变量的存储域。被static修饰的局部变量也叫静态局部变量,其作用域不变,存储域发生变化,默认的局部变量存储在栈中,static修饰的局部变量存储在静态存储区,即bss段或data段。静态局部变量在程序的整个生命周期中存在。
3,static修饰函数
限定函数的作用域。被static修饰的函数只能被本文件的函数调用,对于其他源文件是不可见的,哪怕用extern声明也不可见。
注:限定作用域可以避免不同源文件重名的问题,限定存储域可以避免局部变量被释放。
--
不登高山,不知天之高也;不临深溪,不知地之厚也。