修饰函数

static修改的函数只能在当前 .c 文件可用,其他地方无法调用,就这一个作用,类似 “模块内部私有方法”

static void set_hello(void)
{
	printf("hello\n");
}
void main(void)
{
	set_hello();//本.c文件能用,外部用不了
}

修饰变量

在函数内部

作用域:只能在当前函数使用。第一次执行函数进行初始化,不像函数外程序加载就做初始化。

内存:静态存储区(不是栈!),非static修饰的函数中变量存储在栈中。

在函数外

作用域:只在前**.c**文件可用,也可以通过extern方式访问,可以做类似单例封装效果。

内存:静态存储区

extern 跨文件访问

所有的static修改的变量都不能通过extern进行访问