static修饰局部变量,改变了局部变量的生命周期,本质上是改变了变量的存储类型,原本局部变量存储在栈区,每次使用后都会释放,经过static修饰后,变量存储在静态区。
下图为局部变量的使用例子。
下图为static修饰局部变量的效果。
static修饰全局变量,使得这个全局变量只能在自己所在的源文件内使用。
未使用static修饰时。
使用static修饰后,static修饰后的变量只能在自己所在源文件.c内使用,此时其他源文件.c可以定义同名变量。(不建议使用同名变量)
static修饰函数,使得这个函数只能在自己所在的源文件内使用,
函数未使用static修饰时,项目中所有源文件在声明函数后都可以调用该函数。
使用static修饰函数后,该函数只能在自己所在的源文件内调用,不能在其他源文件内调用,此时其他源文件.c可以定义同名函数。(不建议使用同名函数)
使用static修饰变量和函数时,不建议使用相同名字,使用同名变量和函数,不利于养成良好的编程习惯,容易导致混淆和逻辑错误,降低了代码的可维护性。