关于static关键词:
1、Static 修饰的局部变量与普通局部变量:
Static 修饰的局部变量改变了它的存储位置以及生命周期。存储在静态存储区,只在进程被创建的时候初始化一次,下一次运行依据上一次的结果值,在进程结束的时候释放。作用域相同,都是在函数内部使用。
2、Static 修饰的全局变量与普通全局变量:
两者的存储位置与生命周期相同,区别在于作用域不同。同时编译多个文件时,Static 修饰的全局变量只在定义该变量的源文件内有效,而全局变量对所有文件可见,可以说static对其他源文件隐藏了它修饰的全局变量。
3、Static 修饰的函数与普通函数:
两者作用域不同,static修饰的函数只在本文件内可见,而普通函数可以被其他文件看见。也可以说Static 修饰的函数对其他源文件隐藏了。通常只在本文件内使用的函数定义成static是有好处的,因为它的隐藏性,可以在不同的文件中定义同名函数和同名变量,不必担心命名冲突。
4、Static修饰的变量默认初始化为0,因为它存储在静态存储区。
总结:static的最大的作用是隐藏,其二是延长变量的生命周期,其三是让初始化为0更加方便。