五、static关键字
1 static修饰全局变量
static 修饰全局变量其作用域会被限制在当前文件中(其他源文件不可见)
如果头文件定义了静态全局变量,每个导入该头文件的源文件都会定义一个静态全局变量(每个源文件的静态全局变量都是独立内存空间的,即使变量名相同)2 static修饰局部变量
局部变量只是在第一次调用时会被初始化一次 数据是存储在全局区。
3 static修饰函数
函数被修饰后,就不可以被其他外部源文件调用该函数。静态函数只对该源文件内部可见。
#include <stdio.h>
static void func1 ();/* 只在本源文件可调用 */
void func2(); /* 可被其他源文件调用 */
int
main (int argc, char *argv[]) {
func1 ();
func2 ();
return 0;
}
static void
func1 () {
printf ("func1\n");
}
void
func2() {
printf ("func2\n");
}