1,static关键字在C语言中比较常用,能够恰当的大大提高程序的模块化特性,有利于扩展和维护。
2,局部变量使用static修饰
①局部变量被 static 修饰后,我们称为 静态局部变量
②对应静态局部变量在声明时未赋初值,编译器也会把它初始化
③静态局部变量存储于内存的静态存储区(全局性质),只会被初始化一次,即使函数返回,它的值也会保持不变
3,全局变量使用 static 修饰
①普通全局变量对整个工程可见,其他文件可以使用 extern 外部声明后直接使用,也就是说,其他文件不能再定义一个与其相同名字的变量了(否则编译器会认为它们是同一个变量),静态全局变量仅对当前文件可见,其他文件不可访问,其他文件可以定义与其同名的变量,两者互不影响。
②定义不需要与其他文件共享的全局变量时,加上 static 关键字 能够有效的降低程序模块之间的耦合,避免不同文件同名变量的冲突,且不会被误使用
demo1.c
demo2.c
4,函数使用 static 修饰
①函数的使用方式与全局变量类似,在函数的返回类型前加上 static ,就是静态函数
②非静态函数可以在另一个文件中通过 extern 引用
③静态函数只能在声明它的文件中可见,其他文件不能引用该函数
④不同的文件可以使用相同名字的静态函数,互不影响
demo1.c
demo2.c
demo2.c